我有一个拆分视图应用程序,允许用户选择和显示所选图像的缩略图。我使用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中的函数,按下按钮时会调用该函数。导航控制器在此处显示为空。
//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中添加几行,但是当它运行时,根视图中的表不会显示,并且它不再在纵向和横向视图之间正确切换。
如果有助于澄清,我可以随时使用其余的代码。请告诉我! 感谢。
答案 0 :(得分:1)
从您发布的代码中无法确定问题,但self.navigationController
为零的两个常见原因是:
您没有将self
后面的对象推到导航控制器上;实际上似乎是这样,因为导航控制器被添加为分割视图控制器的子视图;可能你的意思相反......不确定...
(1的子案例)您使用self
向presentViewControllerModally
显示了对象。
当我说“self
背后的对象”时,我指的是定义pressFullViewButtonFunction
的类的实例。
如果您需要更多帮助,请将控制器上的代码发布到导航控制器......
旁注,如果你这样做:
UINavigationController *nvcontrol =[[UINavigationController alloc] initWithRootViewController:fullViewController];
和nvcontrol
不是ivar,然后你有泄漏。
希望这会有所帮助......