视图加载后是不是可以在工具栏上添加、删除或隐藏按钮?
Posted
技术标签:
【中文标题】视图加载后是不是可以在工具栏上添加、删除或隐藏按钮?【英文标题】:Is it possible to add, delete or hide buttons on a toolbar after the view has loaded?视图加载后是否可以在工具栏上添加、删除或隐藏按钮? 【发布时间】:2013-10-31 12:02:36 【问题描述】:我正在尝试根据表格视图的状态更改工具栏上的可见按钮。这可能吗?
添加更多细节:我目前在表格视图中有一个练习列表。底部有一个工具栏,上面有一个“新建”按钮,允许用户创建新练习。当用户单击右上角的“编辑”时,视图进入编辑模式,我希望他们能够通过单击工具栏中现在未隐藏的“删除”按钮来删除使用多项选择的练习。在这一点上,我试图让“新”按钮消失,只留下“删除”按钮。
我可以找到很多关于如何添加工具栏和向其中添加按钮的答案,但一旦视图加载,似乎没有人处理这个问题。
我考虑过有两个不同的工具栏,每个工具栏上都有单独的按钮,然后切换哪个是隐藏的,哪个是可见的,但这会导致其他问题,所以我正在探索是否有一种简单的方法来只隐藏添加的按钮.
【问题讨论】:
只需使用新按钮更新视图控制器的toolbarItems
属性。这假设视图控制器位于导航控制器中。
【参考方案1】:
真的很简单。让我们先看看如何创建一个 UIToolbar,然后向其中添加项目,然后在运行时更改它们
self.MNToolbar=[[UIToolbar alloc] init];
self.addButton=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(importPhotos:)];
self.flexibleSpace=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
self.MNToolbar.items=[[NSArray alloc] initWithObjects:flexibleSpace, addButton, flexibleSpace, nil];
[self.view addSubView:self.MNToolbar];
// don't forget to set the bounds too
这是创建它的方法。
好的,现在让我们看看如何在运行时更改它
self.deleteButton=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(deletePhotos:)];
self.MNToolbar.items=[[NSArray alloc] initWithObjects:self.deleteButton, nil];
我希望你明白这一点。如果您有任何问题,请告诉我。
【讨论】:
你为什么要创建UIToolbar
?假设视图控制器在导航控制器中,导航已经提供了工具栏。只需将视图控制器的 toolbarItems
属性设置为新的工具栏项数组即可。
正如他所说“底部有一个工具栏,上面有一个按钮”。所以他不是在谈论导航控制器。以上是关于视图加载后是不是可以在工具栏上添加、删除或隐藏按钮?的主要内容,如果未能解决你的问题,请参考以下文章