在MPC viewcontroller被解雇后,Segue没有运行

时间:2015-05-25 18:38:29

标签: ios xcode swift

我有一个动作绑定弹出MPC视图控制器但是一旦这个动作被编译并且浏览器被解雇我只是回到我的旧视图控制器

func browserViewControllerDidFinish(
browserViewController: MCBrowserViewController!)  {
    // Called when the browser view controller is dismissed (ie the Done
    // button was tapped)
    func seguetoJoin(segue: UIStoryboardSegue, sender: AnyObject?) {
        var joinView: playMusicViewController = segue.destinationViewController as! playMusicViewController
         weak var delegate: MCBrowserViewControllerDelegate!

    }

    self.dismissViewControllerAnimated(true, completion: nil)

}

1 个答案:

答案 0 :(得分:0)

您似乎在接收didFinish回调的VC上调用dismissViewController。

您应该将segue代码移动到需要执行segue的ViewController,而不是在被解除的ViewController上执行它。

此外,这些尚未使用

var joinView: playMusicViewController = segue.destinationViewController as! playMusicViewController
weak var delegate: MCBrowserViewControllerDelegate!
  

更新 -

遵循以下评论。

  

在mpcSubClass.m中   var viewControllerToPeformSegue:UIViewController!

func browserViewControllerDidFinish(browserViewController: MCBrowserViewController!)  {
    // animation:false as your segue will have an animation
    self.dismissViewControllerAnimated(false, completion: nil)
    self.viewControllerToPerformSegue.handleBrowserDidFinish()
}
在viewControllerToPerformSegue.m

// when you initialise the MPC VC subclass
mpcVCSubclass.viewControllerToPerformSegue = self

func handleBrowserDidFinish()
{
     self.performSegueWithIdentifier("mainViewSegue", sender: self)
}

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) 
{
     if segue.identifier == "mainViewSegue"
    {
        let mainVC = segue.destination as! MainVC
        // now pass any data to your main VC that it can load in viewWillAppear
    }
}
  故事板中的

将viewControllerToPerformSegue链接到MainVC并命名segue mainViewSegue

希望这有帮助。

相关问题