2015-07-03 119 views
1

我有UIScrollView其中包含许多以下订阅视图控制器。每个订阅视图控制器包含容器视图控制器4个视图控制器之间的简单定制导航

Image

目标是做4个浏览控制器之间一个简单的导航在右侧。

导航逻辑:

  • viewDidLoad中第一或第二视图控制器显示集装箱
  • 当用户按下上- 视图 - 控制器按钮示出了第三视图控制器集装箱

我试图使用Segges但这没有奏效。实例化VC的方式为 订阅视图控制器不是个好主意。

回答

0

,我发现最简单的方法是创建自定义的Segue公司enter image description here

  1. 创建自定义UIStoryboardSegue

    1. 转到文件- >- >文件...和选择可可类

    enter image description here

  2. 创建一个新类UIStoryboardSegue

enter image description here

  • 配置MySegue
  • import UIKit 
    
    class NewSegue: UIStoryboardSegue { 
    
        //Call when performSegueWithIdentifier() called 
        override func perform() { 
         //ViewController segue FROM 
         var sourceViewController: UIViewController = self.sourceViewController as! UIViewController 
         //ViewController segue TO 
         var destinationViewController: UIViewController = self.destinationViewController as! UIViewController 
         //Parent ViewController - ContainerViewController 
         var containerViewController: UIViewController = sourceViewController.parentViewController! 
    
         //Setting destinationViewController 
         containerViewController.addChildViewController(destinationViewController) 
         destinationViewController.view.frame = sourceViewController.view.frame 
         sourceViewController.willMoveToParentViewController(nil) 
    
         //Do animation 
         containerViewController.transitionFromViewController(sourceViewController, 
          toViewController: destinationViewController, 
          duration: 0.3, 
          options: UIViewAnimationOptions.TransitionCrossDissolve, 
          animations: nil, completion: { finished in 
           //Delete sourceViewController 
           sourceViewController.removeFromParentViewController() 
           //Show destinationViewController 
           destinationViewController.didMoveToParentViewController(containerViewController) 
         }) 
        } 
    } 
    
  • 转到您的故事板文件,并从做调速拖动ContainerViewController所需控制器,然后选择定制在上下文菜单中
  • enter image description here

    上创建赛格瑞

    3.Click和配置它们

    enter image description here

  • 现在,您可以拨打performSegueWithIdentifier("SugueID", sender: self)ContainerViewController或其他的ViewController
  • 0

    使用此代码来切换容器视图模式...

    @IBOutlet weak var container: UIView! 
        var currentViewController:UIViewController? 
    
    //put the view did load method here. 
    
    
    
        @IBAction func buttonPressed() { 
    
    //the storyboard file that the view is in. 
         let storyboard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
    
    
    // the container view you want to switch to. 
        self.currentViewController = storyboard.instantiateViewControllerWithIdentifier("containerViewStoryboardID") as? UIViewController 
    
    
    //switch the container view. 
         self.addChildViewController(self.currentViewController!) 
    
         self.container.addSubview(self.currentViewController!.view) 
    
         self.currentViewController!.didMoveToParentViewController(self) 
    
    
    } 
    
    +0

    嗯,这是一个坏主意,因为我需要删除子视图,我会从其他VC切换出现问题。 – AndersonDev

    +0

    我已经使用了很多次,效果很好。你还在寻找什么其他解决方案?你只是想切换整个VC? –

    +0

    是的,我需要将整个VC切换到其他。然而,下一个VC应该能够将自己切换到其他VC。不要忘记数据交换 – AndersonDev

    相关问题