我在表格视图单元格上实现了一个详细信息披露按钮,以编辑单元格中的现有文本。但问题是,当我点击Detail Disclosure按钮时,它会显示现有的文本字段,但顶部没有任何“编辑”和“取消”栏按钮项。我已将segue标识符名称指定为'EditItem'。我还有另一个名为'AddItem'的segue,它可以正常工作并显示'Edit'和'Cancel'栏按钮项。我已多次检查代码以找出问题,但没有找到任何解决方案。我想知道如何解决这个问题。
我正在使用Xcode 6 beta 6 SDK。
答案 0 :(得分:1)
您的问题是您没有像编辑项目那样添加项目。看看这个:
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;
在您的故事板中,AddItem
segue连接到导航控制器,然后导航控制器连接到AddViewController
,但EditItem
segue直接转到AddViewController
将EditItem
连接到相同的导航控制器AddItem
,以解决您的问题。