在我的swift應用程序中,我有一個帶有按鈕的UIViewController。這個按鈕打開UIViewController 2號,用戶有另一個按鈕。當用戶按下它 - 他打開的UIViewController號3也有一個按鈕,當用戶按下它 - 他稱之爲代碼:有沒有在Swift中同時解僱兩個uiViewController的方法?
self.dismissViewControllerAnimated(false, completion: nil)
並且由於它的UIViewController 3號消失,用戶看到的UIViewController 2號。我的問題是 - 是否還有一種方法可以解除UIViewController編號2,以便用戶可以平穩地從編號3回到編號1?
現在我創建了一個函數,並調用它通過協議:
UIViewController中編號2:
protocol HandleYourFullRequest: class {
func hideContainer()
}
class FullRequest: UIViewController, HandleYourFullRequest{
func hideContainer(){
self.dismissViewControllerAnimated(false, completion: nil)
}
@IBAction func exitbuttonaction(sender: AnyObject) {
self.performSegueWithIdentifier("temporarySegue", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "temporarySegue"){
if let fullRequestDetails = segue.destinationViewController as? YourFullRequest
{
fullRequestDetails.delegateRequest = self
}
}
}
}
的UIViewController號3:
class YourFullRequest: UIViewController{
var delegateRequest:HandleYourFullRequest?
@IBAction func exitbuttonaction(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
delegateRequest?.hideContainer()
}
}
但是與該解決方案時,用戶按下按鈕 - UIViewController編號3消失,UIViewController編號2出現一秒鐘然後消失。有沒有一種方法可以在不顯示給用戶的情況下刪除2號並將他直接指向號碼1?
你能給我一個提示如何引用'self.navigationController.viewControllers'的第一個元素?我嘗試了'popToViewController(self.navigationController.viewControllers.first:UIViewController,animated:Bool)',但是在我的情況下會導致一些錯誤:( – user3766930
@ user3766930在彈出視圖控制器並打印出自己的內容之前設置一個斷點。 navigationController.viewControllers array。在這裏看看有用,你的視圖控制器層次結構可能不是你所描述的。 – Tim