我提前道歉,因为我在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;
不幸的是,直到用户导航到NEXT页面时才显示“注销”按钮,即单击我声明的“新建”按钮。
有趣的是, rightBarButtonItem 实际上似乎工作得很好。任何指向如何解决这个问题的指针都将非常感激。提前谢谢!
答案 0 :(得分:1)
这可能是因为您将后退按钮设置为退出按钮
尝试替换
self.navigationItem.backBarButtonItem
与
self.navigationItem.leftBarButtonItem
答案 1 :(得分: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:)];
希望这是有道理的。