iOS实战演练之——UINavigationBar滑动问题

来源:互联网 发布:淘宝能买到客户资料呢 编辑:程序博客网 时间:2024/05/21 10:46

问题:以Navigation Controller为根控制器,第一个页面为主页面mainViewController,需要隐藏navigation item;第二个页面为SecondViewController,需要显示navigation item,并有返回按钮,可以返回到mainViewController。

1、在mainViewController中隐藏navigation item:

//隐藏navigation item-(void)viewWillAppear:(BOOL)animated{    [self.navigationController setNavigationBarHidden:YES animated:YES];    [super viewWillAppear:animated];}

2、在SecondViewController中显示navigation item:

//显示navigation item- (void)viewDidLoad {    [super viewDidLoad];    [self.navigationController setNavigationBarHidden:NO animated:YES]; }

3、在SecondViewController中添加“返回“按钮leftBarButton
这需要在mainViewController.m中的viewDidLoad中写到:

- (void)viewDidLoad {    [super viewDidLoad];    [self.navigationController setNavigationBarHidden:NO animated:YES];    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStyleDone target:self action:@selector(back)];    }-(void)back{    [self.navigationController popViewControllerAnimated:YES];}

然后Conmand + R运行程序
发现从mainViewController中无navigation item,进入SecondViewController,SecondViewController中有navigation item,并且有返回按钮,点击返回按钮,发现在mainViewController又出现navigation item。
解决问题方案:
在SecondViewController.m中添加

-(void)loadView{    [super loadView];    [self.navigationController setNavigationBarHidden:NO animated:YES];    return;}

并且在viewDidLoad中删去[self.navigationController setNavigationBarHidden:NO animated:YES];

0 0
原创粉丝点击