2016-07-26 70 views
0

我已成功將SWRevealViewController實現到我的項目中。側面菜單是一個帶有不同單元格的UITableView,可以導航到不同的視圖控制器。當我點擊'profile'單元格時,它默認爲LoginViewController,用戶將登錄並驗證後會進入ProfileViewController。這導致我的問題,當我導航到ProfileViewController的導航欄按鈕(左側)無法正常工作。同樣,當我按下注銷按鈕(右側導航欄按鈕)時,它會回到LoginViewController,但是,菜單按鈕不起作用。Swift - SWRevealViewController Left BarButtonItem導航後不工作

我的導航功能如下:

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

任何幫助,您可以提供將不勝感激。謝謝大家!

乾杯

回答

2

你的問題有點難以回答,但也許這會有所幫助。爲了使SWReveal View Controller正常工作,您必須始終路由到主SWReveal控制器場景以使菜單按鈕正常工作。例如,如果我的故事板看起來像

SWRevealViewController場景 - > Navigation Controller裏的場景 - >主視圖

和我回送到導航控制器場景,按鈕​​是行不通的。您必須路由回到導航/您試圖訪問的任何其他場景之前的SWRevealController場景的第一個實例。

如果您需要添加SWRevealViewController場景的另一個實例,使這項工作,只是通過sw_front識別你所需要的按鈕,在工作導航控制器/視圖控制器Segue公司,然後通過sw_rear標識Segue公司回菜單的同一個實例。

對不起,如果這個答案很混亂,請讓我知道,如果我可以澄清任何事情。

+0

謝謝你的迴應,Mike!您的帖子對幫助我實現我所需的內容非常有幫助!隨着你的解決方案,以及一些代碼,我能夠實現我正在尋找的東西。謝謝! –

+0

很高興我能幫到你。我最近自己也遇到了同樣的問題 –