我正在使用相同的视图,使用TableViewController与添加/编辑项目系统的应用程序。 (但是当你添加一个项目时,视图是模态显示的,当你编辑它时会显示)
我跟着Apple的伟大starter tutorial,所以基本上我的故事板看起来像这样
通过导航控制器的segue用于添加,另一个用于编辑。 (我根据教程做了一切)。
我在取消项目栏按钮和ViewController的退出图标之间做了一个segue,当模态显示视图时(当我尝试添加项目时)它运行良好。
然而,当我点击一个单元格来显示带有显示它的segue的视图(编辑项目)时,导航栏中的两个项目都停止工作。不再调用prepareForSegue
方法。所以我无法取消或保存。
我尝试在ViewController本身和退出图标之间创建一个展开segue并以编程方式调用它:
@IBAction func testButton(sender: UIBarButtonItem) {
print("we're inside")
self.performSegueWithIdentifier("cancelSegue", sender: self)
print("so what now")
}
当我尝试编辑它并点击取消按钮时,只显示两条日志消息并跳过performSegueWithIdentifier
方法。但是添加仍然可以正常工作。
我做错了什么或者我误解了关于放松细分的一些基本概念?
答案 0 :(得分:1)
这对您的问题来说似乎是一个奇怪的解决方案。虽然我无法评论为什么你的unwind segue在第二种情况下没有工作,但是因为你要显示它{2}而忽略New Program
segue会变得非常复杂不同的方式。
我们使用的常用方法是:
prepareForSegue
将其传递给视图控制器。加载视图控制器时,如果存在某个项目,则可以更改按钮的行为,标题等。如果没有项目,则表示您要创建新项目。[self dismissViewControllerAnimated:NO completion:nil]
用于模态视图,[self.navigationController popViewControllerAnimated:YES]
用于返回同一导航控制器堆栈中的vc。<强>更新强>
您是否将取消按钮链接到第一个视图控制器或第二个视图控制器(带有取消和保存按钮的控制器)上的退出图标?