我不确定为什么但是在Xcode 5中处理IOS6.1的项目我有一个连接到IBAction的按钮,我正在尝试导航到新的视图控制器。
我尝试了两个不同的代码来创建viewController,然后在视图控制器不是nil的情况下将其推送到导航,两种情况都不会出现viewController。
首先尝试:使用故事ID - 我已将视图控制器的故事ID设置为imageCapture并将类设置为VSImageCaptureViewController
VSImageCaptureViewController* imageCaptureViewController = (VSImageCaptureViewController*)([self.storyboard instantiateViewControllerWithIdentifier:@"imageCapture"]);
[self presentViewController:imageCaptureViewController animated:NO completion:nil];
第二次尝试:使用viewcontroller的名称
VSImageCaptureViewController *imageCaptureViewController = [[VSImageCaptureViewController alloc] initWithNibName:@"VSImageCaptureViewController" bundle:nil];
[self.navigationController pushViewController:imageCaptureViewController animated:YES];
你能看到什么问题吗?或者你认为我忘了初始化
答案 0 :(得分:0)
检查self.navigationController是否为零。
如果它为n,则意味着您没有在UINavigationController的上下文中运行(当UIViewController被添加到导航堆栈时,系统会为您设置此属性。)
如果是这种情况,那么您还没有正确设置UINavigationController。
请注意,您无法自行设置navigationController属性。当UIViewController被添加到UINavigationController的堆栈时,系统会为您设置它(当它从堆栈中移除时将其设置为nil。)
要进行此设置,您通常会在创建主视图控制器后立即创建UINavigationController实例。
UIViewController *mainViewController = ...;
UINavigationController *mainNavController = [[UINavigationController alloc] initWithRootViewController:mainViewController];
// now present the mainNavController instead of the mainViewController
如果您使用的是故事板,则可以拖出UINavigationController实例,并将默认的根视图控制器替换为mainViewController的实例。