gpt4 book ai didi

ios - revealViewController() 总是返回 nil

转载 作者:搜寻专家 更新时间:2023-10-30 22:59:54 25 4
gpt4 key购买 nike

我在使用 Xcode 7.2 和 iOS 9.2 中的 revealViewController 时遇到了一些问题。

我的应用程序从嵌入导航 Controller 的 View Controller 开始,以执行登录。登录后,或者如果存在登录 token ,我会使用以下代码跳转到嵌入导航 Controller 中的另一个 View Controller :

let homePage = self.storyboard?.instantiateViewControllerWithIdentifier("HomeViewController") as! HomeViewController
let homePageNav = UINavigationController(rootViewController: homePage)
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.window?.rootViewController = homePageNav

在这个主视图 Controller 中,我想要一个带有 SWRealViewController 的左侧导航菜单。

我将 SWRealViewController View 与 sw_front 链接到我的主导航 Controller ,以及以下代码:

if (self.revealViewController() != nil) {
self.menuButton.target = self.revealViewController()
self.menuButton.action = "revealToggle:"
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())

但是 self.revealViewController() 总是返回 nil,所以它不起作用。

我想我在某处丢失了 revealViewController(可能是当我从第一个导航 Controller 跳到第二个时),但我不知道该怎么做。

最佳答案

最方便的是revealViewControllernil的原因是你没有在 stroyboard 中正确连接 segues 吗?

查看此 tutorial这很容易理解。

更新如果在您的情况下,如果用户未登录,您只需要打开一个登录 vc,您可以这样做:

在 AppDelegate 中

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

var rootVCStoryboardId = userIsLoggedin ? "SWRevealViewController" : "LoginViewController"
self.window?.rootViewController = UIStoryboard(name: Storyboards.main, bundle: NSBundle.mainBundle()).instantiateViewControllerWithIdentifier(rootVCStoryboardId)

SWRevealViewController 是 SWRevealViewController 的 Storyboard ID,LoginViewController 是您的登录 View Controller (或其导航 Controller ,如果存在)的 Storyboard ID。

enter image description here

关于ios - revealViewController() 总是返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34987122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com