0

我在 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右栏按钮'完成',即使我在如上所示的取消方法中执行此操作。

这段代码有什么问题?

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

po self.navigationItem

知道为什么吗?

提前致谢,

拉玛

4

1 回答 1

1

简单,设置editingNO

- (IBAction)Cancel:(id)sender {
    //cancel
    self.editing = NO; //--> This is the trick!!!!!!
    self.navigationItem.rightBarButtonItem = self.editButtonItem; 
    self.navigationItem.leftBarButtonItem = nil;
}
于 2012-04-01T22:38:46.027 回答