簡體   English   中英

關閉MPC ViewController后,Segue沒有運行

[英]Segue not running after MPC viewcontroller is dismissed

我有一個動作可以彈出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)

}

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

您應該將安全代碼移至需要執行安全代碼的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並將名稱命名為mainViewSegue

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM