我在表格视图单元格上实现了一个详细信息披露按钮来编辑单元格中的现有文本。但问题是,当我单击详细信息披露按钮时,它会显示现有的文本字段,但顶部没有任何“编辑”和“取消”栏按钮项目。我已将 segue 标识符名称指定为“EditItem”。我还有另一个名为“AddItem”的segue,它可以正常工作并显示“编辑”和“取消”栏按钮项目。我已经检查了很多次代码以找出问题,但没有找到任何解决方案。我想知道如何解决这个问题。
我正在使用 Xcode 6 beta 6 SDK。
我在表格视图单元格上实现了一个详细信息披露按钮来编辑单元格中的现有文本。但问题是,当我单击详细信息披露按钮时,它会显示现有的文本字段,但顶部没有任何“编辑”和“取消”栏按钮项目。我已将 segue 标识符名称指定为“EditItem”。我还有另一个名为“AddItem”的segue,它可以正常工作并显示“编辑”和“取消”栏按钮项目。我已经检查了很多次代码以找出问题,但没有找到任何解决方案。我想知道如何解决这个问题。
我正在使用 Xcode 6 beta 6 SDK。
您的问题是您添加项目的方式与编辑项目的方式不同。看这个:
if ([segue.identifier isEqualToString:@"AddItem"]){
UINavigationController *navigation = segue.destinationViewController;
AddItemViewController *controller =(AddItemViewController *) navigation.topViewController;
controller.delegate = self;
} else if ([segue.identifier isEqualToString:@"EditItem"]){
UINavigationController *navigation = segue.destinationViewController;
AddItemViewController *controller = (AddItemViewController *)navigation;
controller.delegate = self;
//
NSIndexPath *indexpath = [self.tableView indexPathForCell:sender];
controller.itemToEdit = _items[indexpath.row];
}
请注意,对于AddItem
segue,您将获得如下视图控制器:
AddItemViewController *controller =(AddItemViewController *) navigation.topViewController;
但是对于EditItem
segue,你得到的是这样的:
AddItemViewController *controller =(AddItemViewController *) navigation;
在您的故事板中,segueAddItem
连接到导航控制器,然后连接到您的.AddViewController
EditItem
AddViewController
连接EditItem
到相同的导航控制器AddItem
应该可以解决您的问题。