将右侧Bar ButtonItem从“保存”更改为“完成”

时间:2012-01-22 10:28:06

标签: ios uinavigationitem

我有一个带有正确BarButtonItem的NavigationItem和它的标识符 - 最初 - “保存”以保存我在视图上创建的实体。

在我看来,我使用了DatePicker。如果此DatePicker可见,则“保存”按钮不应为“保存”按钮,而应为“完成”按钮。如果看不到DatePicker,则“完成”按钮应再次更改为“保存”。

我理解Interface Builder中的标识符,包括本地化。所以我想,我不能只改变标题,对吗?

您能告诉我如何将按钮从“保存”更改为“完成”或者我是如何更改的吗?

2 个答案:

答案 0 :(得分:3)

亚光是对的 - 有两个按钮,根据需要交换进/出。虽然我希望你能跟踪一个按钮并改变标题;当你还有两个你想要执行的不同动作时,为什么要这样做呢?

 saveBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:@selector(save:)];

 doneBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(done:)];

答案 1 :(得分:2)

我通常在这里做的是创建标题为“完成”的另一个UIBarButtonItem实例,并将其与普通的“保存”按钮一起保存为视图控制器中的实例变量。然后,当需要显示“完成”按钮时,我会在setRightBarButtonItem:animated:上调用UINavigationItem来更改按钮,并在需要时将其设置回“保存”按钮。

我认为这通常比仅仅更改标题更好,因为它们是不同的行为,因此将它们连接到不同的操作方法更有意义。