像许多其他人一样,我今天开始编写一个实验代码,我将拥有两个视图控制器并能够在它们之间切换。我得到这个工作使用导航控制器,但我有一个关于实现的问题。使用导航控制器推送和弹出ViewControllers:实现
在我的TwoViewsAppDelegate中,我定义了导航控制器和rootViewController。
@interface TwoViewsAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
UINavigationController *navigationController;
RootViewController *rootViewController;
}
,并设置它们如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
rootViewController = [[RootViewController alloc] init];
navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
[window setRootViewController:navigationController];
[self.window makeKeyAndVisible];
return YES;
}
然后在我的RootViewController的,我定义我 打算切换到level2ViewController,和一个按钮,我会按到使 开关发生:
@interface RootViewController : UIViewController {
UIButton *theButton;
Level2ViewController *level2ViewController;
}
下面是在RootViewController.m被按下按钮的响应:
-(void)level1ButtonPressed:(id)sender
{
if (level2ViewController == nil)
{
level2ViewController = [[Level2ViewController alloc] init];
}
[self.navigationController pushViewController:level2ViewController animated:YES];
}
的问题是,如果有将是一个level3ViewController, 它必须被定义为用于然而,许多视图控制器我想推到堆栈中的level2ViewController的构件等 。
能够在一个 位置定义所有视图控制器,最好是应用程序委托,这将是很好的。这可能吗?