导航控制器为空
Posted
技术标签:
【中文标题】导航控制器为空【英文标题】:Navigation Controller is null 【发布时间】:2011-08-11 17:04:17 【问题描述】:我有一个拆分视图应用程序,允许用户选择并显示所选图像的缩略图。我使用 Interface Builder 在 detailViewController 中放置了一个 UIButton。按下此按钮时,我希望将其更改为图像的全屏视图。我已经设置了一个新的视图控制器,称为 FullViewController,并认为我已经连接了所有东西。问题是。我将 AppDelegate.m 调整为以下内容:
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
// Override point for customization after app launch.
// Set the split view controller as the window's root view controller and display.
self.window.rootViewController = self.splitViewController;
UINavigationController *nvcontrol =[[UINavigationController alloc] initWithRootViewController:fullViewController];
[window addSubview:nvcontrol.view];
[self.window makeKeyAndVisible];
return YES;
这是 DetailViewController.m 中的函数,当按下按钮时会调用它。导航控制器在此处显示为 null。
//Function called when button is pressed - should bring up full screen view
- (IBAction) pressFullViewButtonFunction: (id) sender
//viewLabel.text = @"Full View";
if (fullViewController == nil)
FullViewController *fullViewController = [[FullViewController alloc] initWithNibName:@"FullViewController" bundle:[NSBundle mainBundle]];
NSLog(@"fullViewController is %@", fullViewController);
self.fullViewController = fullViewController;
NSLog(@"self.navigationController is %@",self.navigationController);//this is null
[self.navigationController pushViewController:self.fullViewController animated:YES];
我不确定如何解决这个问题。我尝试在 AppDelegate 中添加几行,但是当它运行时,根视图中的表格不会显示,并且它不再在纵向和横向视图之间正确切换。
如果这有助于澄清,我可以随时使用其余代码。让我知道! 谢谢。
【问题讨论】:
【参考方案1】:从您发布的代码中无法识别问题,但self.navigationController
为 nil 的两个常见原因是:
你一开始没有将self
后面的对象推到导航控制器上;确实如此,因为导航控制器是作为拆分视图控制器的子视图添加的;可能你的意思是相反的...不确定...
(1 的子情况)您使用presentViewControllerModally
显示了self
后面的对象。
当我说“self
背后的对象”时,我指的是定义 pressFullViewButtonFunction
的类的实例。
如果您需要更多帮助,请将您的控制器推送到导航控制器的代码发布...
顺便说一句,如果你这样做:
UINavigationController *nvcontrol =[[UINavigationController alloc] initWithRootViewController:fullViewController];
而nvcontrol
不是 ivar,那么你就有泄漏。
希望这会有所帮助...
【讨论】:
以上是关于导航控制器为空的主要内容,如果未能解决你的问题,请参考以下文章