2016-07-14 2 views
3

В loginVC я создал кнопку мыши, он идет к главному tabbarcontroller через Segue как это ..SWRevealViewController получает нуль после возвращения через segue?

@IBAction func btnLoginPressed(sender: AnyObject) { 
self.performSegueWithIdentifier("logintoMain", sender: self)  
} 

это успешно идет в tabbarmainVC, но после того, что swRevealviewController получает ноль .. и не скользящий здесь работает. Зачем?

class MaintabbarController: UIViewController{ 

@IBOutlet weak var slideBtn: UIBarButtonItem! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Do any additional setup after loading the view. 
    if self.revealViewController() != nil{ 
     slideBtn.target = self.revealViewController() 
     slideBtn.action = #selector(SWRevealViewController.revealToggle(_:)) 
     self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) 
    }  
} 

Edited

Я попробовал этот код также на кнопку входа нажмите, чтобы перейти к mainTabbarvc. Теперь он работает отлично. На самом деле я должен толкать revealviewController чем только будет активным ..

@IBAction func btnLoginPressed(sender: AnyObject) { 
    let sb = UIStoryboard(name: "Main", bundle: nil) 
    let vc =sb.instantiateViewControllerWithIdentifier("yourtabbarvcidentifier") as! UITabBarController 
    vc.selectedIndex = 0 
// self.presentViewController(vc, animated: true, completion: nil) 
    self.revealViewController().pushFrontViewController(vc, animated: true) 
    } 
+0

Вы настроили свой storyBoard для работы с SWRevealViewController правильно? Я имею в виду идентификатор sw_front segue, идентификатор sw_rear segue и т. Д.? –

+0

да все правильно работают. только проблема возникла после того, как вы вернулись к этой странице через segue при нажатии любой кнопки viewcontroller @ ReinierMelian –

ответ

1

Попробуйте добавить его в эту функцию и посмотреть, что происходит:

override func viewWillAppear(animated: Bool) { 
    if self.revealViewController() != nil{ 
    slideBtn.target = self.revealViewController() 
    slideBtn.action = #selector(SWRevealViewController.revealToggle(_:)) 
    self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) 
} 
} 

Это будет появляться, когда вид активен.

+0

все еще получал ту же проблему. Я установил там точки останова и проверил. он проверяет swrevealviewController и получает нуль .. вот почему не происходит, если условие –

+0

вы указали контроллеру вида, используя класс SWRevealViewController? – Konsy

+0

m с использованием класса SWRevealViewController от github –