我有一个UIViewController,它被设置为名为MainPVC.swift的UIPageViewControllerDataSource。这是我在Storyboard上的切入点。在其中,我实例化另一个名为TrackerVC的UIViewController,它在我的Storyboard中设置 - 但没有通过segue连接到MainPVC。
实例化TrackerVC:
func viewControllerAtIndex(index: Int) -> TrackerVC {
let childViewController = self.storyboard?.instantiateViewControllerWithIdentifier("trackerVC") as TrackerVC
childViewController.screenIndex = index
return childViewController
}
我有另一个名为NotesVC的UIViewController。当我按下TrackerVC上的按钮时,我使用自定义UIStoryBoardSegue来显示NotesVC。在NotesVC上,我有另一个按钮,我想通过Unwind使用另一个自定义UIStoryboardSegue返回到TrackerVC。
在NotesVC中点击了取消按钮:
@IBAction func cancelButtonTapped(sender: AnyObject) {
self.performSegueWithIdentifier("unwindFromNotesSegue", sender: self)
}
现在我的问题 -
当我按下TrackerVC上的按钮时,自定义UIStoryboardSegue工作正常,并按预期显示NotesVC。但是,当我点击NotesVC上的按钮时,将忽略自定义UIStoryboardSegue,并且正在使用滑动视图的通用segue。
我已将问题追溯到未在TrackerVC中调用segueForUnwindingToViewController。我在Storyboard中正确设置了所有连接以及所有必需的方法(unwind使用的方法)。
我还尝试创建第三个UIViewController并使用自定义UIStoryboardSegues和Unwind显示它并从NotesVC调用它,一切正常。正如预期的那样在NotesVC上调用segueForUnwindingToViewController。
感谢您的帮助!
答案 0 :(得分:4)
你有NavigationController
吗?您可能需要继承NavigationController
并在那里添加segueForUnwindingToViewController
。是什么解决了我遇到的类似问题。