UINavigationController

2016-08-10  本文已影响12人  CoderRH
//UINavigationController以栈的形式保存子控制器
@property(nonatomic,copy) NSArray *viewControllers;
@property(nonatomic,readonly) NSArray *childViewControllers;

//使用push方法能将某个控制器压入栈
- (void)pushViewController:(UIViewController *)viewController 
                  animated:(BOOL)animated;

//使用pop方法可以移除控制器
//将栈顶的控制器移除
- (UIViewController *)popViewControllerAnimated:(BOOL)animated;
//回到指定的子控制器
- (NSArray *)popToViewController:(UIViewController *)viewController
                        animated:(BOOL)animated;
//回到根控制器(栈底控制器)
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;
//导航栏的内容由栈顶控制器的navigationItem属性决定

//UINavigationItem有以下属性影响着导航栏的内容
//左上角的返回按钮
@property(nonatomic,retain) UIBarButtonItem *backBarButtonItem;
//中间的标题视图
@property(nonatomic,retain) UIView          *titleView;
//中间的标题文字
@property(nonatomic,copy)   NSString        *title;
//左上角的视图
@property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem; 
//右上角的视图
@property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;

导航栏的注意点

UIImage *image = [UIImage imageNamed:@"imageName"];
// 通过代码不要渲染图片
image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setImage:[UIImage imageNamed:@"imageName"] forState:UIControlStateNormal];
[btn setImage:[UIImage imageNamed:@"imageName"] forState:UIControlStateHighlighted];
//btn.frame = CGRectMake(2000, 2000, 30, 30);  位置无效 尺寸有效
// 控件的尺寸由图片决定 仅仅是设置尺寸
[btn sizeToFit];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:btn];

导航栏的常见问题

backButton.contentEdgeInsets = UIEdgeInsetsMake(0, -20, 0, 0);
上一篇 下一篇

猜你喜欢

热点阅读