如何在导航栏中为非 rootviewcontroller 的 tableviewcontroller 添加编辑按钮

Posted

技术标签:

【中文标题】如何在导航栏中为非 rootviewcontroller 的 tableviewcontroller 添加编辑按钮【英文标题】:How to add an edit button in a navigation bar for a tableviewcontroller that is not the rootviewcontroller 【发布时间】:2012-03-18 03:03:57 【问题描述】:

我使用故事板。 我有一个UINavigationContrller 作为初始视图控制器。它与UIViewController 有一个rootViewController 关系。 UiViewController 有一个推送到TabBarControllerTabBarController 的第一个 relashionship 是 TableViewController

我想给TableViewController添加一个编辑按钮。

我尝试使用此代码:self.navigationItem.rightBarButtonItem = self.editButtonItem; 但是这一行只是被忽略了,导航栏不显示按钮。

我也写了这段代码:self.navigationController.navigationBarHidden = NO; self.navigationcontroller.navigationItem.hidesBackButton = YES;

第一个不被忽略(导航栏从第一个UIViewController 中隐藏)第二个被忽略并保留后退按钮。

【问题讨论】:

【参考方案1】:

尝试将其添加到您的视图控制器:

// When this view appears, add show the navigation bar and the edit button
- (void)viewDidAppear 
    [super viewDidLoad];
    self.navigationController.navigationBarHidden = NO; 
    self.navigationItem.hidesBackButton = YES;
    self.navigationItem.rightBarButtonItem = self.editButtonItem;


// When this view disappears, remove the editButton and hide the navigation bar
- (void)viewDidDisappear 
    self.navigationItem.rightBarButtonItem = nil;
    self.navigationController.navigationBarHidden = YES;

【讨论】:

是的,这行得通,但是这段代码添加了编辑按钮并使导航栏在不是 tableView 的视图中可见,当我到达表格时,编辑按钮消失 我编辑了代码,让它在视图消失时再次消失。

以上是关于如何在导航栏中为非 rootviewcontroller 的 tableviewcontroller 添加编辑按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何隐藏导航栏后退按钮

在iOS7半透明导航栏中获取正确的颜色

我们如何在 TypeScript 中为非全局接口创建扩展方法?

如何在python中为非数字变量制作直方图

如何在张量流中为非分类对象创建一个类?

自定义导航栏中后退图标和文本的间距和格式