【问题标题】:How do create the side-drawer controller?如何创建侧抽屉控制器?
【发布时间】:2016-06-29 21:12:41
【问题描述】:

我对 iOS 还很陌生。我已经能够成功地实现材料按钮和卡片视图,但是侧抽屉控制器如何在情节提要上完成对我来说没有意义。谁能帮忙提供故事板上的示例代码?

寻找一个简单的视图控制器,带有一个可以打开 sidedrawercontroller 的导航按钮。

【问题讨论】:

    标签: cosmicmind


    【解决方案1】:

    根据我的经验,如果你想使用NavigationDrawerController,你必须以编程方式初始化NavigationDrawerController

    但是,您仍然可以通过情节提要来布局根视图控制器和侧控制器,并确保在 Interface Builder 中为它们提供正确的情节提要 ID。

    这是我在 AppDelegate.swift

    中的代码
    let mainViewController         = instantiateViewControllerWithIdentifier("MainViewController") as! MainViewController        
    let sideMenuViewController     = instantiateViewControllerWithIdentifier("SideMenuViewController") as! SideMenuViewController
    let navigationController       = NavigationController(rootViewController: mainViewController, leftViewController: sideMenuViewController)        
    let navigationDrawerController = NavigationDrawerController(rootViewController: navigationController)
    
    window = UIWindow(frame: UIScreen.mainScreen().bounds)
    window?.rootViewController = navigationDrawerController
    window?.makeKeyAndVisible()
    

    附:如果你想使用 UINavigationController,只需在 Storyboard 中嵌入带有 UINavigationViewController 的“MainViewController”,并给 UINavigationViewController 一个 Storyboard ID。最后,将rootViewController 设置为您的UINavigationController 实例,而不是MainViewController

    更新Swift3Material 2.0

    func instantiateViewControllerWithIdentifier(identifier: String) -> UIViewController {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        return storyboard.instantiateViewController(withIdentifier: identifier)
    }
    
    let mainViewController = instantiateViewControllerWithIdentifier(identifier: "MainViewController") as! MainViewController
    let sideMenuViewController = instantiateViewControllerWithIdentifier(identifier: "SideMenuViewController") as! SideMenuViewController
    let navigationController = NavigationController(rootViewController: mainViewController)
    let navigationDrawerViewController = NavigationDrawerController(rootViewController: navigationController, leftViewController: sideMenuViewController, rightViewController: nil)
    
    window = UIWindow(frame: UIScreen.main.bounds)
    window?.rootViewController = navigationDrawerViewController
    window?.makeKeyAndVisible()
    

    【讨论】:

    • 嘿,你有这个问题的 swift 3 版本吗?运行登录检查后,我想切换到 mainViewController。我想将 sideMenuViewController 功能添加到 mainViewController。这里的代码如何变化?因为使用此代码,它最初在启动时加载 mainViewController。如果你帮助我,我会给你接受的答案;)
    • 如果你想在展示你的mainViewController之前加载你的loginViewController,你可以使用原生的present:viewControllerToPresent:animated:completion函数来展示上面代码生成的navigationDrawerViewController 。或者如果您只是想在没有任何用户界面的情况下进行一些登录检查,那么您可以在完成登录检查后使用上述代码更改您的window's rootViewController
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-14
    相关资源
    最近更新 更多