UITableViewController NavigationItem按钮问题

时间:2012-04-01 07:27:51

标签: iphone ios xcode4.2 uitableview navigationitem

我在UITableViewController上设置导航按钮时出现问题!该控制器位于UINavigationController内。

我关注了视图控制器:

@interface SettingsViewController : UITableViewController<UITextFieldDelegate, UINavigationControllerDelegate> {

   }
...........

@end

并在实施文件中:

- (void)viewDidLoad 
     {
          self.navigationItem.rightBarButtonItem = self.editButtonItem;
     }

我正在以编程方式添加导航按钮项。

编辑:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {

    [super setEditing:editing animated:animated];
    //[self.navigationItem setHidesBackButton:editing animated:YES];

    if (!editing) 
    {
     self.navigationItem.leftBarButtonItem = nil;
        [self save];
    }
    else 
    {
        UIBarButtonItem *cancelButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(Cancel:)];
        self.navigationItem.leftBarButtonItem = cancelButtonItem;
        cancelButtonItem = nil;
    }
}

- 上面的编辑功能似乎在设置导航按钮方面工作正常

取消:

- (IBAction)Cancel:(id)sender {
    //cancel
    self.navigationItem.rightBarButtonItem = self.editButtonItem; --> this is not setting edit button.
    self.navigationItem.leftBarButtonItem = nil;
}

- 但点击取消并不是将navigationitem右键按钮'Done'替换为'Edit',即使我在Cancel方法中执行此操作,如上所示。

这段代码有什么问题?

当我调试时,我在调试区域中看不到以下内容:

po self.navigationItem

任何想法为什么?

提前致谢,

拉​​马

1 个答案:

答案 0 :(得分:1)

简单,将editing设为NO

- (IBAction)Cancel:(id)sender {
    //cancel
    self.editing = NO; //--> This is the trick!!!!!!
    self.navigationItem.rightBarButtonItem = self.editButtonItem; 
    self.navigationItem.leftBarButtonItem = nil;
}