我有一個視圖控制器,它使用容器視圖嵌套在另一個視圖控制器內。是否有可能從當前位於容器視圖中的視圖中繼續並在同一容器視圖中將其替換爲另一個視圖控制器。即容器視圖周圍的內容不會被佔用整個視圖的另一個視圖控制器移除。在SWIFT中嵌套在另一個視圖控制器內的視圖控制器上執行segue
1
A
回答
0
是的。你可以在Apple Docs中閱讀。
考慮您的containerView目前只有一個視圖 - 控制,這裏是一個非常簡單的例子:
func loadVCWithId(idToLoad: String){
childViewControllers[0].willMoveToParentViewController(nil)
childViewControllers[0].view.removeFromSuperview()
childViewControllers[0].removeFromParentViewController()
let secondViewController = self.storyboard?.instantiateViewControllerWithIdentifier(idToLoad)
UIView.transitionWithView(yourContainer, duration: 0.5, options: UIViewAnimationOptions.TransitionFlipFromRight, animations: {self.yourContainer.addSubview((secondViewController?.view)!)}, completion: nil)
secondViewController!.view.frame = firstContainer.bounds
// do initialization of secondViewController here
secondViewController?.didMoveToParentViewController(self)
}
loadVCWithId(idToLoad:String)
是您的主視圖控制器中的一個方法。
在這個代碼片段中,我刪除容器的當前內容(可能不是訪問索引0的最佳方式,但爲了這個例子,這應該足夠了),通過ID實例化一個新的ViewController一個出現在我的故事板中,但不能訪問),爲過渡設置動畫,並將新的VC添加到容器中。
希望這會有所幫助。
0
這是我的解決方案
可能有助於第一我對childViewController創建一個協議
protocol ChildViewControllerDelaget
{
func performForSegue(SegueIdentifier:String)
}
class ChildViewController: UIViewController {
var delaget:ChildViewControllerDelaget?
override func viewDidLoad() {
super.viewDidLoad()
}
init()
{
}
@IBAction func myAction(sender: AnyObject) {
if delaget != nil {
deleget.performForSegue("mySegueIdentifier")
}
}
和MainViewController
class ViewController: UIViewController,ChildViewControllerDelaget {
override func viewDidLoad()
{
super.viewDidLoad()
let child = ChildViewController()
child.delaget = self
}
func performForSegue(segueIdentifier:String)
{
self.performSegueWithIdentifier(segueIdentifier, sender: nil)
}
}
相關問題
- 1. segue到另一個視圖控制器
- 2. 在另一個視圖中嵌套導航控制器
- 3. FlyoutNavigation子視圖控制器無法在主控制器上執行segue?
- 4. 從另一個視圖控制器關閉視圖控制器
- 5. 從另一個視圖控制器通知視圖控制器
- 6. 當segue即將執行到另一個視圖控制器時,prepareForSegue是否通知視圖控制器?
- 7. swift:在第一個視圖控制器中向上滑動顯示另一個視圖控制器
- 8. 在一個視圖控制器中的兩個表視圖swift
- 9. 在一個視圖控制器中的兩個表視圖swift
- 10. 在視圖內顯示另一個控制器的視圖
- 11. 如何使用swift在另一個視圖控制器中訪問一個視圖控制器的IBoutlet?
- 12. UIViewController視圖中的iOS嵌套視圖控制器視圖?
- 13. 從另一個視圖控制器在swift上更改標籤
- 14. 執行segue時未加載下一個視圖控制器
- 15. 關閉視圖控制器到另一個視圖swift 3
- 16. 在swift中加載視圖控制器中的集合視圖控制器
- 17. 一次性視圖控制器/ segue
- 18. 從另一個視圖控制器的視圖控制器觸發器操作
- 19. 在視圖控制器內的視圖中繪製一條線
- 20. 如何在另一個視圖控制器中控制實例
- 21. 在容器視圖中嵌入多個視圖控制器
- 22. 在一個視圖控制器中保存得分值並在另一個視圖控制器上顯示
- 23. 在多個控制器上執行segue
- 24. ViewController在另一個視圖控制器中使用Swift 3
- 25. 如何在Swift中呈現另一個視圖控制器?
- 26. 子視圖控制器通知根視圖控制器加載另一個子視圖控制器
- 27. 在控制器之前執行視圖?
- 28. 頁面視圖控制器 - 從圖像到另一個視圖控制器
- 29. 的UILabel控制在另一個視圖控制器
- 30. 從另一個視圖控制器中刪除視圖控制器