我有一个视图控制器,它使用容器视图嵌套在另一个视图控制器内。是否有可能从当前位于容器视图中的视图中继续并在同一容器视图中将其替换为另一个视图控制器。即容器视图周围的内容不会被占用整个视图的另一个视图控制器移除。在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. 从另一个视图控制器中删除视图控制器