1.视图控制器 UIViewController
1.设置根视图控制器
RootViewController *rootVC = [[RootViewController alloc] init];
self.window.rootViewController = rootVC;
[rootVC release];
2.导航视图控制器 UINavigationController
标题 title / navigationItem.title @"abc"
背景颜色 navigationController.navigationBar.barTintColor UIColor cyanColor
设置不透明 navigationController.navigationBar.translucent NO
隐藏方式(所有类格式要统一) 1.navigationBarHidden YES
2.navigationBar.hidden YES
样式 self.navigationController.navigationBar.barStyle UIBarStyleBlack
修改导航栏上内容的颜色 self.navigationController.navigationBar.tintColor UIColor whiteColor
左右按钮(含点击事件) self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(left:)] autorelease];
1.创建导航视图控制器
MainViewController *mainVC = [[MainViewController alloc]init];
UINavigationController *naVC = [[UINavigationController alloc]initWithRootViewController:mainVC];
self.window.rootViewController = naVC;
[mainVC release];
[naVC release];
2.触发事件进入下一页
[self.navigationController pushViewController:secVC animated:YES];
3.协议传值
从后向前传值
协议传值__SecondViewController.h
1.声明一份协议
@protocol SecondViewControllerDelegate//协议方法
-(void)changeValue:(NSString *)value;
@end
@interface SecondViewController : UIViewController
2.设置代理人的属性
@property(nonatomic,assign)iddelegate;
@end
协议传值__SecondViewController.m
3.设置代理人执行的协议方法--写在需要执行事件方法里
-(void)click:(UIButton *)button{
[self.delegate changeValue:self.textField.text];
}
协议传值__MainViewController.m
4.签订协议
@interface MainViewController ()
5.设置代理人对象
secVC.delegate = self;
6.实现协议方法
-(void)changeValue:(NSString *)str{
}
4.属性传值
从前向后传值
属性传值__SecondViewController.h
1.在第二个页面写一条属性
@property(nonatomic,assign)NSInteger number;
针对字符串写一条属性
@property(nonatomic,copy)NSString *str;
@property(nonatomic,retain)NSArray *arr;
属性传值__MainViewController.h
2.属性传值的第二步
-(void)click:(UIButton *)button{
SecondViewController *secVC = [[SecondViewController alloc] init];
secVC.number = 100;
secVC.str = self.myTextField.text;
secVC.arr = @[@"a",@"b"];
[secVC release];
}
属性传值__SecondViewController.m
3.把属性里的内容对label进行赋值
self.label.text = self.str;