学习IOS开发的第8天(1)

今天学习了ios的导航控制器UINavigationController。导航控制器可以管理很多个视图控制器,是一个栈结构,将一个个视图控制器压入栈中。在栈顶的视图会显示出来,将它弹栈就会显示下面一个视图。

UINavigationController包含一个导航栏UINavigationBar,导航栏可以显示一个左按钮,可以显示一个右按钮。导航栏上的按钮都是由navigationItem管理的,而navigationItem是属于不同的视图控制器的。

我们创建一个根视图控制器RootController,然后创建完视图后,我们创建一个按钮,点下按钮后,会创建另一个视图控制器,加入导航控制器,并显示出来。

    //创建下一页按钮
    UIButton *next = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    next.frame = CGRectMake(100, 100, 100, 50);
    next.backgroundColor = [UIColor whiteColor];
    [next setTitle:@"下一页" forState:UIControlStateNormal];
    [view addSubview:next];
    [next addTarget:self action:@selector(nextPage) forControlEvents:UIControlEventTouchUpInside];
按下按钮会执行nextPage方法。在方法中创建第二个视图控制器,并加入导航控制器中。
//点击按钮,下一页
-(void)nextPage{
    //创建第二个视图控制器
    SecondController *secondController = [[SecondController alloc] init];
    //加入到导航控制器中
    [self.navigationController pushViewController:secondController animated:YES];
}
我们要创建一个在导航栏上的“提示”按钮。
    //提示 按钮
    UIBarButtonItem *hint = [[UIBarButtonItem alloc] initWithTitle:@"提示" style:UIBarButtonItemStyleBordered target:self action:@selector(hint)];
    self.navigationItem.rightBarButtonItem = hint;
点击后,会执行hint方法,弹出一个提示框。
//提示
-(void)hint{
    //创建提示框
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"李阳制作" delegate:nil cancelButtonTitle:@"好!很好!非常好!耶!" otherButtonTitles:nil];
    [self.view addSubview:alert];
    [alert show];
}
设置好视图的标题。
    self.navigationItem.title = @"首页";
在第二个视图控制器SecondController中,先创建好视图,然后创建一个“下一页”按钮。
    UIView *view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen]applicationFrame]];
    view.backgroundColor = [UIColor orangeColor];
    self.view = view;
    
    UIButton *next = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    next.frame = CGRectMake(100, 100, 100, 50);
    next.backgroundColor = [UIColor whiteColor];
    [next setTitle:@"下一页" forState:UIControlStateNormal];
    [view addSubview:next];
    [next addTarget:self action:@selector(nextPage) forControlEvents:UIControlEventTouchUpInside];
点击按钮会执行nextPage方法,再创建一个SecondController视图控制器。
//点击按钮,下一页
-(void)nextPage{
    //创建第二个视图控制器
    SecondController *secondController = [[SecondController alloc] init];
    //加入到导航控制器中
    [self.navigationController pushViewController:secondController animated:YES];
}

给视图的导航栏创建标题。

    self.navigationItem.title = [NSString stringWithFormat:@"第%d页",count++];

我们在导航栏上创建一个返回首页的按钮。
    //回到首页 按钮
    UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:@"首页" style:UIBarButtonItemStyleBordered target:self action:@selector(back)];
    self.navigationItem.rightBarButtonItem = back;
在back方法中,我们让导航控制器弹出根视图上的所有视图,只剩根视图。
//返回首页按钮
-(void)back{
    [self.navigationController popToRootViewControllerAnimated:YES];
}
最后我们在应用程序的委托类中,创建导航控制器,并把根视图控制器加入其中,然后让window显示它。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    
    //创建根视图
    RootController *rootController = [[RootController alloc] init];
    //创建导航控制器
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootController];
    self.window.rootViewController = navigationController;
    
    return YES;
}


运行结果截图:

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值