首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UITableViewController NavigationItem按钮问题

UITableViewController NavigationItem按钮问题
EN

Stack Overflow用户
提问于 2012-04-01 15:27:51
回答 1查看 1.4K关注 0票数 0

我在UITableViewController上设置导航按钮时遇到问题!此控制器位于UINavigationController内部。

我有以下视图控制器:

代码语言:javascript
复制
@interface SettingsViewController : UITableViewController<UITextFieldDelegate, UINavigationControllerDelegate> {

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

@end

在实现文件中:

代码语言:javascript
复制
- (void)viewDidLoad 
     {
          self.navigationItem.rightBarButtonItem = self.editButtonItem;
     }

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

编辑:

代码语言:javascript
复制
- (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;
    }
}

--就设置导航按钮而言,上述编辑功能似乎工作正常

取消:

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

--但单击cancel并不会将导航项目右侧栏按钮'Done‘替换为'Edit’,即使我是在上面所示的Cancel方法中执行此操作。

这段代码有什么问题?

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

po self.navigationItem

知道为什么吗?

提前谢谢你,

拉玛

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-02 06:38:46

简单,将editing设置为NO

代码语言:javascript
复制
- (IBAction)Cancel:(id)sender {
    //cancel
    self.editing = NO; //--> This is the trick!!!!!!
    self.navigationItem.rightBarButtonItem = self.editButtonItem; 
    self.navigationItem.leftBarButtonItem = nil;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9962674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档