学习IOS开发的第8天(1)
来源:互联网 发布:2016java程序员薪资 编辑:程序博客网 时间:2024/05/16 12:51
今天学习了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
- 学习iOS开发的第1天
- 学习IOS开发的第8天(1)
- 学习IOS开发的第2天
- 学习iOS开发的第3天
- 学习IOS开发的第4天
- 学习IOS开发的第5天
- 学习IOS开发的第7天
- 学习IOS开发的第9天
- 学习IOS开发的第10天
- 学习IOS开发的第11天
- 学习IOS开发的第12天
- 学习IOS开发的第13天
- 学习IOS开发的第14天
- 学习iOS开发的第15天
- 学习iOS开发的第16天
- 学习iOS开发的第17天
- 学习iOS开发的第18天
- 学习iOS开发的第19天
- 接口回调
- 有趣的python 对象描述
- Android回顾之短信
- 指针函数与函数指针的区别
- 个人移动设备(BYOD):中小企业应知道的五项移动设备威胁
- 学习IOS开发的第8天(1)
- UI Design Basics: 0.5 Modal Contexts
- mysql数据类型详解
- jvisualvm功能演示
- 指针函数与函数指针的区别
- 走进小米电视:走进智慧家庭
- UInavigationBar自定义导航栏背景和按钮(二)
- Spring + Hibernate开发
- 下了eclipse后需要做的工作