0

我提前道歉,因为在 Objective-C 和 iOS 开发方面我是一个完整的初学者,但是我遇到了一个让我非常困惑的问题。我在一个视图中有这段代码,我想把它放在一个叫做“主页”的东西上,它显示在“登录”页面之后。

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]
                                             initWithTitle: @"Sign Out"
                                             style: UIBarButtonItemStyleBordered
                                             target: self
                                             action: @selector(logout_Action:)];

    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]
                                              initWithTitle:@"New"
                                              style:UIBarButtonItemStyleBordered
                                              target:self
                                              action:@selector(new_Action:)];
    [self.navigationItem.backBarButtonItem release];
    [self.navigationItem.rightBarButtonItem release];

    self.navigationItem.hidesBackButton = NO;

不幸的是,直到用户导航到下一个页面,即通过单击我已声明的“新建”按钮,该“退出”按钮才会显示。

有趣的是rightBarButtonItem实际上看起来工作得很好。任何有关如何解决此问题的指针将不胜感激。提前致谢!

4

2 回答 2

1

这可能是因为您将后退按钮设置为退出按钮,

尝试更换

self.navigationItem.backBarButtonItem

self.navigationItem.leftBarButtonItem

于 2013-04-28T05:08:23.423 回答
1

当你做这样的事情时:

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]
                                         initWithTitle: @"Sign Out"
                                         style: UIBarButtonItemStyleBordered
                                         target: self
                                         action: @selector(logout_Action:)];

这将设置返回到此视图控制器的返回按钮,而不是当前显示的返回按钮。这就是为什么当您转到“新建”页面时会显示退出按钮的原因,因为您刚刚更改了将返回主屏幕的后退按钮。

因此,如果您想更改后退按钮,请将这段代码放在 PREVIOUS 视图控制器中,即通向主页的那个。例子:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // In view controller that comes BEFORE the "Home page"

    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]
                                             initWithTitle: @"Sign Out"
                                                     style: UIBarButtonItemStyleBordered
                                                    target: homeScreenController
                                                    action: @selector(logout_Action:)];

希望这是有道理的。

于 2013-04-28T08:45:04.893 回答