编译错误从应用委托获取 navigationController

Posted

技术标签:

【中文标题】编译错误从应用委托获取 navigationController【英文标题】:compile error get navigationController from app delegate 【发布时间】:2011-04-10 06:52:26 【问题描述】:

在我的 AppDelegate didFinishLaunchingWithOptions 中,我初始化了 UINavigationController

TodoTaskTableViewController *tttvc = [[TodoTaskTableViewController alloc] initInManagedObjectContext:self.managedObjectContext];
UINavigationController *navcon = [[UINavigationController alloc] init];

[navcon pushViewController:tttvc animated:NO];

[window addSubview:navcon.view];

[navcon release];

[window makeKeyAndVisible];

然后在我的 TodoTaskTableViewController 上单击一个按钮,该按钮推动另一个模态视图,发现模态视图的导航栏隐藏在 AppDelegate 的导航栏下方。

所以我尝试通过如下设置来隐藏 AppDelegate 的导航栏:

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

[appDelegate.navigationController setNavigationBarHidden:YES animated:YES];

但我实际上得到一个编译错误:请求成员“navigationController”不是结构或联合”

知道如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

您需要将名为navigationController 的属性添加到您的应用程序委托,然后将其设置为navcon

在 AppDelegate 中 didFinishLaunchingWithOptions:

self.navigationController = navcon;

【讨论】:

以上是关于编译错误从应用委托获取 navigationController的主要内容,如果未能解决你的问题,请参考以下文章

从应用程序委托获取当前视图控制器(模式是可能的)

如何从应用程序委托中获取 iOS 应用程序中的活动视图?

如何从应用程序委托、情节提要、iOS6 获取我的视图控制器的实例

WatchKit Complication:从扩展委托获取复杂数据

从应用委托中检索 managedObjectContext 时崩溃

在管理器 loadFromPreferencesWithCompletionHandler 上获取 Permission Denied 错误