UIPageViewControllerDataSource - 未调用segueForUnwindingToViewController

时间:2015-01-22 15:41:41

标签: ios swift uistoryboardsegue

我有一个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。

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

你有NavigationController吗?您可能需要继承NavigationController并在那里添加segueForUnwindingToViewController。是什么解决了我遇到的类似问题。