我有一個視圖控制器,它使用容器視圖嵌套在另一個視圖控制器內。是否有可能從當前位於容器視圖中的視圖中繼續並在同一容器視圖中將其替換爲另一個視圖控制器。即容器視圖周圍的內容不會被佔用整個視圖的另一個視圖控制器移除。在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. 在視圖內顯示另一個控制器的視圖
- 4. 在一個視圖控制器中的兩個表視圖swift
- 5. 在一個視圖控制器中的兩個表視圖swift
- 6. 如何使用swift在另一個視圖控制器中訪問一個視圖控制器的IBoutlet?
- 7. 執行segue時未加載下一個視圖控制器
- 8. 從另一個視圖控制器在swift上更改標籤
- 9. 關閉視圖控制器到另一個視圖swift 3
- 10. 一次性視圖控制器/ segue
- 11. 在swift中加載視圖控制器中的集合視圖控制器
- 12. 從另一個視圖控制器的視圖控制器觸發器操作
- 13. 在視圖控制器內的視圖中繪製一條線
- 14. 如何在另一個視圖控制器中控制實例
- 15. 子視圖控制器通知根視圖控制器加載另一個子視圖控制器
- 16. ViewController在另一個視圖控制器中使用Swift 3
- 17. 在控制器之前執行視圖?
- 18. 視圖控制器在執行segue時不會釋放
- 19. 的UILabel控制在另一個視圖控制器
- 20. 將segue從一個視圖控制器重定向到另一個視圖
- 21. 從一個表視圖控制器傳遞json id到swift 3中的另一個表視圖控制器3
- 22. 在objective-c中添加一個視圖控制器作爲另一個視圖控制器的子控件
- 23. Swift IOS:一個視圖控制器中的幾個按鈕,控制另一個視圖控制器中的圖像視圖顯示
- 24. 嵌套視圖和控制器
- 25. Ember.js - 子嵌套視圖'控制器
- 26. iPhone - 嵌套視圖和控制器
- 27. 在新的導航控制器中嵌入視圖控制器
- 28. 添加視圖控制器的NIB到另一個視圖控制器
- 29. Segue公司新的視圖控制器
- 30. 表視圖(內部視圖控制器)Segue公司不工作