该应用程序应根据数据库中的某些数据转发到另一个视图控制器。数据库工作正常,但我无法让应用程序转发到第二个视图控制器。这是我的代码。
ssSecondViewController *tempView =[[ssSecondViewController alloc] init];
[self.navigationController pushViewController:tempView animated:YES];
我没有收到任何错误,但是当我运行代码时屏幕转发到一个空白的黑色视图?
该应用程序应根据数据库中的某些数据转发到另一个视图控制器。数据库工作正常,但我无法让应用程序转发到第二个视图控制器。这是我的代码。
ssSecondViewController *tempView =[[ssSecondViewController alloc] init];
[self.navigationController pushViewController:tempView animated:YES];
我没有收到任何错误,但是当我运行代码时屏幕转发到一个空白的黑色视图?
如果您已经在情节提要上拥有 viewController,那么您可以通过如下代码分配它,并且您必须在情节提要上将标识符设置为 viewControler
ssSecondViewController *tempView =[self.storyboard instantiateViewControllerWithIdentifier:@"yourIdentifier"];
在这里设置你的viewController id,在下面的图像标识符是“MenuViewController”
如果它在 .Xib 文件上,那么
ssSecondViewController *tempView =[[ssSecondViewController alloc] initWithNibName:@"yourIdentifier" bundle:nil];
如果您只想以编程方式添加新的 viewController 而不使用已经可用的 viewController ,那么您必须使用它来初始化它,initWithFrame
然后它会显示 viewController
ssSecondViewController *tempView =[[ssSecondViewController alloc] initWithFrame:CGRectMake(0,0,320,480)];
ssSecondViewController *tempView =[[ssSecondViewController alloc] init];
这条线只是分配 viewController,它没有任何位置来绘制它。
你需要使用
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
因此,对于您的示例,它将是:
ssSecondViewController *tempView =[[ssSecondViewController alloc] initWithNibName:@"ssSecondViewController" bundle:nil];
对于故事板,您通常不会实际执行推送,您可以使用segueIdentifiers
故事板中的设置进行 segue:
[self performSegueWithIdentifier:@"ssSecondSegue" sender:self];
然后处理您的数据传递和其他设置器prepareForSegue