Swift - SWRevealViewController Left BarButtonItem 在导航后不工作

Swift - SWRevealViewController Left BarButtonItem not working after 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
}

我的故事板如下:

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

干杯

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

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

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

如果您需要添加另一个 SWRevealViewController Scene 实例来使其工作,只需通过 sw_front 标识符转至您需要按钮在其中工作的导航控制器/视图控制器,然后将其转入sw_rear 标识符回到菜单的同一个实例。

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