如何在导航栏上显示返回按钮?

时间:2014-04-03 06:11:37

标签: ios uinavigationcontroller

我正在练习带导航栏的应用程序。我使用UIBarButton从主屏幕转到下一个屏幕。

UIButton *moveLeft = [UIButton buttonWithType:UIButtonTypeCustom];

    [moveLeft setTitle:@"Next Screen" forState:UIControlStateNormal];
    moveLeft.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:12.0f];
    [moveLeft.layer setCornerRadius:4.0f];
    [moveLeft.layer setBorderWidth:1.0f];
    [moveLeft.layer setBorderColor: [[UIColor redColor] CGColor]];
    moveLeft.frame=CGRectMake(200, 100.0, 90.0, 30.0);
    [moveLeft setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];


    [moveLeft addTarget:self action:@selector(moveToNext) forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem* barbutton= [[UIBarButtonItem alloc] initWithCustomView:moveLeft];

    self.navigationItem.rightBarButtonItem = barbutton;

但现在当第二个屏幕出现时,没有导航栏。 以下是应用程序的屏幕截图

main screen

Second Screen

我也尝试了UIBarButton,但第二个屏幕上仍然没有导航栏。

UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:@"Back"
                                                             style:UIBarButtonItemStylePlain
                                                            target:nil
                                                            action:nil];
    [[self navigationItem] setBackBarButtonItem:back];

我的问题如何在第二个屏幕上显示后退按钮?我没有制作任何自定义按钮,但默认也不会自动进入。 请指导我。

4 个答案:

答案 0 :(得分:2)

根据您的评论,您将展示下一个视图控制器,而不是此

[self presentViewController:secondScreen animated:YES completion:nil];   

这样做

[self.navigationController pushViewController:secondScreen  animated:YES]  

建议

不应该将subView添加到窗口,而应该设置窗口的rootViewController,这是推荐的方法。所以改变

[self.window addSubview:[navControll view]];

self.window.rootViewController = navControll;

答案 1 :(得分:1)

没有人正确回答这个问题,我遇到了同样的问题,而且我自己解决了这个问题。我的解决方案是在子视图控制器之前删除导航控制器,而不是控制桌面控制器到子视图控制器之间的拖动,选择"显示"

答案 2 :(得分:0)

您必须使用UINavigationController。它将是您的应用程序的根视图控制器。将mainVC放入其中,然后只需pushViewController秒vc。

您可以通过任何vc的navigationController方法访问导航控制器(在您的情况下为mainVC)。

答案 3 :(得分:0)

您可以将自定义后退按钮添加到导航栏

UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, button_width, button_height)];
[backButton setImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal];
[backButton addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];