我有一个带有正确BarButtonItem的NavigationItem和它的标识符 - 最初 - “保存”以保存我在视图上创建的实体。
在我看来,我使用了DatePicker。如果此DatePicker可见,则“保存”按钮不应为“保存”按钮,而应为“完成”按钮。如果看不到DatePicker,则“完成”按钮应再次更改为“保存”。
我理解Interface Builder中的标识符,包括本地化。所以我想,我不能只改变标题,对吗?
您能告诉我如何将按钮从“保存”更改为“完成”或者我是如何更改的吗?
答案 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
来更改按钮,并在需要时将其设置回“保存”按钮。
我认为这通常比仅仅更改标题更好,因为它们是不同的行为,因此将它们连接到不同的操作方法更有意义。