我想知道,如何从AppDelegate = [[UIApplication sharedApplication] delegate]iPhone编程中获取navController .例如,在我们引用AppDelegate的其他viewController中.
在applicationDelegate.h中,我们有:
UINavigationController *navController;
Run Code Online (Sandbox Code Playgroud)
以及applicationDelegate.m中的以下内容
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[window addSubview: navController.view];
[window makeKeyAndVisible];
}
Run Code Online (Sandbox Code Playgroud)
无论如何从mainWindow获取navController:
UIWindow *mainWindow = [appDelegate window];
Run Code Online (Sandbox Code Playgroud) iphone objective-c uinavigationcontroller uiapplicationdelegate ios
作为iPhone开发的新手,我正慢慢地到达那里,但有时简单的事情似乎让我感到困惑.
我的应用程序包含7个非常不同的视图.它被实现为没有导航控制器的基于窗口的应用程序.导航由每个视图控制器单独管理,我使用中央数据存储库通过应用程序提供数据.
我用 :-
DetailView *viewDetail = [[DetailView alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:viewDetail animated:YES];
Run Code Online (Sandbox Code Playgroud)
改变观点.显然,在所有情况下,这都是在当前视图的控制器内执行的.
但是,我现在已经向应用程序添加了推送通知.收到Push后,userInfo数据在主AppDelegate中可用,并执行didReceiveRemoteNotification.我希望将应用程序强制进入上面描述的Detailview,并将其传递给userInfo中的一个值.
当然,一旦执行第二行,我就会得到一个很好的SIGABRT.我认为这是因为当前活动的视图不是自我的.如何从应用程序委托中放弃当前视图以支持DetailView?当前视图可能是7个视图中的任何一个,包括DetailView,我想用新数据刷新.
在此先感谢Chris Hardaker