【问题标题】:Swift - SWRevealViewController Left BarButtonItem not working after navigationSwift - SWRevealViewController Left BarButtonItem 在导航后不起作用
【发布时间】:2016-07-26 02:38:34
【问题描述】:

我已成功将 SWRevealViewController 实施到我的项目中。侧边菜单是一个带有不同单元格的 UITableView,它们导航到不同的视图控制器。当我点击“个人资料”单元格时,它默认为 LoginViewController,用户将在那里登录,一旦验证,将转到 ProfileViewController。这导致了我的问题,当我导航到 ProfileViewController 时,导航栏按钮(左侧)无法正常工作。同样,当我按下注销按钮(右侧导航栏按钮)时,它确实导航回 LoginViewController,但是,菜单按钮不起作用。

我的导航功能如下:

func switchVC() { //Navigates to the profileViewController
    let storyboard = UIStoryboard.init(name: "Login", bundle: nil)
    let nav = storyboard.instantiateViewControllerWithIdentifier("Profile")
    UIApplication.sharedApplication().keyWindow?.rootViewController = nav  
}

func switchBack() { //Navigates back to the LoginViewController
    let storyboard = UIStoryboard.init(name: "Login", bundle: nil)
    let nav = storyboard.instantiateViewControllerWithIdentifier("Login") 
    UIApplication.sharedApplication().keyWindow?.rootViewController = nav
}

我的故事板如下:

如果您能提供任何帮助,我们将不胜感激。谢谢大家!

干杯

【问题讨论】:

    标签: ios swift navigation


    【解决方案1】:

    您的问题有些难以回答,但也许这会有所帮助。为了让 SWReveal View Controller 工作,您总是必须路由到主 SWReveal Controller Scene 才能使菜单按钮工作。例如,如果我的故事板看起来像

    SWRevealViewController 场景 --> 导航控制器场景 --> 主视图

    然后我路由回导航控制器场景,按钮​​不起作用。您必须路由回 SWRevealController 场景的第一个实例,该实例位于导航/您尝试到达的任何其他场景之前。

    如果您需要添加 SWRevealViewController 场景的另一个实例以使其工作,只需通过 sw_front 标识符到导航控制器/视图控制器,您需要按钮工作,然后通过 sw_rear 继续标识符返回到菜单的同一实例。

    对不起,如果这个答案令人困惑,请告诉我是否可以澄清任何事情。

    【讨论】:

    • 感谢您的回复,迈克!你的帖子在帮助我实现我所需要的方面非常有帮助!通过您的解决方案以及一些代码,我能够实现我想要的。谢谢!
    • 很高兴我能帮上忙。我自己最近也遇到了同样的问题
    猜你喜欢
    • 2016-04-23
    • 2014-10-08
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    相关资源
    最近更新 更多