presentViewControler推动所有控制器堆栈

问题描述:

我有一个tableView作为我的第一个视图。每个单元格都是可点击的,点击后,我使用presentViewController以新数据显示当前视图。我没有导航栏,所以我不能使用导航控制器和推。问题是每次我点击一个单元格时,它会显示一个新的视图(这很好),但按下后退按钮时,它只会向后移动一步,但我想让它进入第一个视图。我该怎么做?presentViewControler推动所有控制器堆栈

print("clicked " + String(indexPath.row)) 
let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let vc = storyboard.instantiateViewControllerWithIdentifier("playVideo") as! PlayVideoViewController 

preferences.setValue(self.video[indexPath.row].id , forKey: "id") 
//self.dismissViewControllerAnimated(false, completion: nil) 
    self.presentViewController(vc, animated: true, completion: nil) 

回:

self.dismissViewControllerAnimated(true, completion: nil) 
+1

如果你正在使用的UINavigationController你能证明 'VC' 在导航控制器通过按方法推动堆栈-pushViewController:animated:并返回返回按钮将调用-popToRootViewControllerAnimated:导航控制器的方法。 –

+0

@IgorBidiniuc我没有navigationController,所以我不能使用它 –

+1

所以你为什么不能使用它?你可以隐藏导航栏。 –

如果要回到第一个VC使用该代码:

self.view.window!.rootViewController?.dismissViewControllerAnimated(true, completion: nil)