【问题标题】:How to push viewcontroller correctly如何正确推送视图控制器
【发布时间】:2015-10-08 14:06:39
【问题描述】:

这是我的故事板:

简短说明:

  • 我的应用从 LaunchController 开始
  • 模态序列显示 Reveal View Controller
  • 这带来了菜单控制器和我的主导航控制器(ID “导航控制器”;绿色导航栏)在一起。这将创建一个幻灯片 菜单。 (基本代码: appcoda.com/ios-programming-sidebar-navigation-menu/)
  • 我的主导航控制器显示一个 TableViewController。
  • 这个有一个菜单按钮(3 行),用于制作幻灯片菜单 可见
  • 加号图标将推送最后一个视图控制器(ID:“VC1”)。

我的问题: 我想为我的应用设置快速操作。 此代码帮助适用于此:

@available(iOS 9.0, *)
    func handleShortcut( shortcutItem:UIApplicationShortcutItem ) -> Bool {

        var succeeded = false

        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let initialViewController = storyboard.instantiateViewControllerWithIdentifier("NavController")
        self.window?.rootViewController = initialViewController

        let navVC = self.window?.rootViewController as! UINavigationController

        switch shortcutItem.type {

        default:
            navVC.pushViewController(storyboard.instantiateViewControllerWithIdentifier("VC1"), animated: false)
            succeeded = true
            break
        }
        return succeeded

    }

此代码将 NavController 设置为初始 Controller 并推送到 VC1。 这很好用。

使用 VC 1 中的 X 图标,我使用展开功能回到 TableView。 问题:如果我使用展开功能并退回到 tableview 我无法打开幻灯片菜单。触摸菜单图标没有任何反应。

问题可能是,我使用 Reveal View Controller 后面的快速操作启动应用程序。

我该如何解决这个问题?

【问题讨论】:

  • 您好 Ghost108,您现在有解决问题的方法吗?可以分享给大家吗?

标签: ios uitableview uinavigationcontroller swift2 ios9


【解决方案1】:

您是否尝试将显示视图控制器设置为应用程序的入口点并删除启动控制器,因为如果您只想返回主视图,您可以这样做:

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let controller = storyboard.instantiateInitialViewController() as UIViewController!
    self.presentViewController(controller, animated: false, completion: nil)

如果你不能解释启动控制器的用途吗?

【讨论】:

  • 启动控件无法删除。你能用我的帖子 1 示例向我展示我的解决方案的完整代码吗
猜你喜欢
  • 1970-01-01
  • 2010-12-11
  • 2015-11-23
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2016-10-22
  • 2015-07-27
相关资源
最近更新 更多