【问题标题】:how to set pushed view as root view controller using transition如何使用转换将推送视图设置为根视图控制器
【发布时间】:2016-03-10 10:41:27
【问题描述】:

我正在使用包含三个视图控制器的页面视图控制器,其中一个视图控制器有一个按钮,我在该按钮上使用推送视图来呈现来自右侧的另一个视图。一切都运行良好,视图是动画和存在的。但问题是在 uipageview 控制器中的视图上显示了新视图,然后向右滑动显示第二个页面视图。我想使用转换作为单独的视图打开新视图。所以我想把它称为 root vie 解决了我猜的问题

这是我的代码

        let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let vc : drawer = storyboard.instantiateViewControllerWithIdentifier("drawerID") as! drawer

    hidesBottomBarWhenPushed = true

    let transition: CATransition = CATransition()
    let timeFunc : CAMediaTimingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
    transition.duration = 0.25
    transition.timingFunction = timeFunc
    transition.type = kCATransitionPush
    transition.subtype = kCATransitionFromRight    //kCATransitionFromLeft
    self.navigationController!.view.layer.addAnimation(transition, forKey: kCATransition)

    self.navigationController!.pushViewController(vc, animated: false)

修改后的代码

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    appDelegate.window = UIWindow(frame: UIScreen.mainScreen().bounds)
    let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let vc : drawer = storyboard.instantiateViewControllerWithIdentifier("drawerID") as! drawer
    var nav = appDelegate.window?.rootViewController as? UINavigationController

    nav = UINavigationController.init(rootViewController:vc )

    hidesBottomBarWhenPushed = true

    let transition: CATransition = CATransition()
    let timeFunc : CAMediaTimingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
    transition.duration = 0.25
    transition.timingFunction = timeFunc
    transition.type = kCATransitionPush
    transition.subtype = kCATransitionFromRight    //kCATransitionFromLeft
    nav!.view.layer.addAnimation(transition, forKey: kCATransition)
    appDelegate.window?.rootViewController = nav
    appDelegate.window?.makeKeyAndVisible()

【问题讨论】:

  • appDelegate.navigationController? >
  • 感谢@mandeep 问题已解决,因为我两次调用相同的视图...我更新了运行代码并进行了修改...再次感谢

标签: ios swift transition uipageviewcontroller


【解决方案1】:
        let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
        appDelegate.window = UIWindow(frame: UIScreen.mainScreen().bounds)
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let initialViewController = storyboard.instantiateViewControllerWithIdentifier("drawer")
        appDelegate.navigationController = UINavigationController.init(rootViewController:initialViewController )
        appDelegate.navigationController?.setViewControllers([initialViewController], animated: false)
        appDelegate.window?.rootViewController = appDelegate.navigationController
        appDelegate.window?.makeKeyAndVisible()

【讨论】:

  • 您好,感谢您的评论...我在我的代码中调整了您的代码,但它使推送的视图变为空白...请在合并后检查有问题的代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-11
  • 1970-01-01
  • 1970-01-01
  • 2015-02-09
  • 1970-01-01
  • 1970-01-01
  • 2017-10-23
相关资源
最近更新 更多