ios学习笔记-多个界面和导航控制器

2015-04-13  本文已影响0人  5f375ff95999

导航控制器就是UINavigationController,app里会经常用到。

下面的图显示了导航控制器的流程。最左侧是根视图,当用户点击其中的General项时 ,General视图会滑入屏幕;当用户继续点击Auto-Lock项时,Auto-Lock视图将滑入屏幕。相应地,在对象管理上,导航控制器使用了导航堆栈。根视图控制器在堆栈最底层,接下来入栈的是General视图控制器和Auto-Lock视图控制器。可以调用pushViewControllerAnimated:方法将视图控制器推入栈顶,也可以调用popViewControllerAnimated:方法将视图控制器弹出栈。

UINavigationController

UINavigationController有Navigation bar ,Navigation View ,Navigation toobar等组成:

UINavigationController组成

下面我们写个例子演示一下:

首先我们新建一个controller,就叫AboutViewController吧。为了演示方便,我们也不放什么东西进去了。

然后重新设置view的层级关系,打开AppDelegate.h。再interface里新增一行:

@property (strong, nonatomic) UINavigationController *navController;

然后打开AppDelegate.m。修改application方法:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    
    ...
    
    instance_rootView.title = @"main";
    
    self.navController = [ [UINavigationController alloc] init];
    [self.navController pushViewController:instance_rootView animated:YES];
    [self.window addSubview:self.navController.view];
    
    //将RootViewController设置为根视图控制器
    //self.window.rootViewController = instance_rootView;
    
    //设置为主窗口并可见
    [self.window makeKeyAndVisible];
    
    return YES;
}

再打开RootViewController.m。修改方法someButtonClicked:

-(void) someButtonClicked{
    
    AboutViewController *controller = [[AboutViewController alloc] init];
    [self.navigationController pushViewController:controller animated:YES];
    
    /*
    
    UIAlertView *alertView = [[UIAlertView alloc]
                              initWithTitle:@"Hello, World"
                              message:@"This is my first app!"
                              delegate:nil
                              cancelButtonTitle:@"ok"
                              otherButtonTitles:nil];
    
    [alertView show];
     */
}

Run一下试试?

上一篇下一篇

猜你喜欢

热点阅读