Swift - SWRevealViewController导航后左侧BarButtonItem无法正常工作

时间:2016-07-26 02:38:35

标签: ios swift navigation

我已成功将SWRevealViewController实现到我的项目中。侧边菜单是一个UITableView,具有不同的单元格,可以导航到不同的视图控制器。当我点击'profile'单元格时,它默认为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
}

我的故事板如下:Storyboard

我们非常感谢您提供的任何帮助。谢谢大家!

干杯

1 个答案:

答案 0 :(得分:2)

你的问题有点难以回答,但也许这会有所帮助。为了使SWReveal View Controller工作,您必须始终路由到主SWReveal控制器场景才能使用菜单按钮。例如,如果我的故事板看起来像

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

然后我回到导航控制器场景,按钮​​无效。您必须返回到导航之前的SWRevealController场景的第一个实例/您尝试访问的任何其他场景。

如果您需要添加另一个SWRevealViewController场景实例来实现这一功能,只需通过bins标识符到导航控制器/视图控制器,您需要按钮才能工作,然后通过{ {1}}标识符返回菜单的同一个实例。

很抱歉,如果这个答案令人困惑,请告诉我是否可以澄清任何内容。