编译错误从应用委托获取 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的主要内容,如果未能解决你的问题,请参考以下文章
如何从应用程序委托、情节提要、iOS6 获取我的视图控制器的实例
WatchKit Complication:从扩展委托获取复杂数据
从应用委托中检索 managedObjectContext 时崩溃
在管理器 loadFromPreferencesWithCompletionHandler 上获取 Permission Denied 错误