gpt4 book ai didi

ios - 导航 Controller 为空

转载 作者:行者123 更新时间:2023-11-29 13:46:49 26 4
gpt4 key购买 nike

我有一个 Split View应用程序,允许用户选择并显示所选图像的缩略图。我使用 Interface Builder 在 detailViewController 中放置了一个 UIButton。当按下这个按钮时,我想让它变成图像的全屏 View 。我已经设置了一个新的 View Controller,称为 FullViewController 并认为我已经连接了所有东西。问题是导航 Controller 为空。我将 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 中的函数。导航 Controller 在这里出现 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 中添加几行,但是当它运行时, Root View 中的表没有显示,并且它不再在纵向和横向 View 之间正确切换。

如果这有助于澄清,我有现成的其余代码。让我知道!谢谢。

最佳答案

从您发布的代码中无法确定问题所在,但 self.navigationController 为 nil 的两个常见原因是:

  1. 您一开始并没有将 self 后面的对象推送到导航 Controller ;确实如此,因为导航 Controller 是作为 Split View Controller 的 subview 添加的;可能你的意思恰恰相反……不确定……

  2. (1 的子案例)您使用 presentViewControllerModally 显示了 self 后面的对象。

当我说“self 背后的对象”时,我指的是定义了 pressFullViewButtonFunction 的类的实例。

如果您需要更多帮助,请将您将 Controller 推送到导航 Controller 的代码发布...

附带说明,如果您这样做:

UINavigationController *nvcontrol =[[UINavigationController alloc] initWithRootViewController:fullViewController];

并且 nvcontrol 不是 ivar,那么你就有漏洞了。

希望这有助于...

关于ios - 导航 Controller 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7029974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com