ram*_*amo 6 iphone objective-c uinavigationcontroller uiapplicationdelegate ios
我想知道,如何从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)
Luc*_*ien 17
如果其他UIViewController包含在UINavigationController中,您只需调用:
UINavigationController *navController = self.navigationController;
Run Code Online (Sandbox Code Playgroud)
来自UIViewController.
否则,您可以将UINavigationController设置为AppDelegate中的属性.
// AppDelegate.h
@property (nonatomic, strong) UINavigationController *navController;
Run Code Online (Sandbox Code Playgroud)
然后访问appDelegate.navController.
或者,您可以将UINavigationController设置为窗口的rootViewController:
[window setRootViewController:navController];
Run Code Online (Sandbox Code Playgroud)
从任何地方打电话:
UINavigationController *navController = window.rootViewController;
Run Code Online (Sandbox Code Playgroud)