0

Navigation from view controller back to SWReveal Front PageОт ViewController перейти обратно к SWRevealViewController Front Page

Как вы можете видеть на картинке, там уже 3 контроллера в нижней части которых (HomeTableViewController, NavigationViewController и NewsViewController)

HomeTableViewController главная страница который я использую SWRevealViewController и устанавливаю его как титульную страницу. (sw_front)

После того, как я выбрал строку в HomeTableViewController, она может перейти в NewsTableViewController. Тем не менее, я добавил кнопку возврата в NewsViewController для перехода на предыдущую страницу, которая является HomeTableViewController, мне не удается это сделать с помощью этого кода.

В HomeTableViewController перейдите к NewsViewController по выбран ряд

@IBAction func btnBack(sender: AnyObject) 
{ 
    let home = HomeTableViewController() 
    self.presentViewController(home, animated: true, completion: nil) 
} 

В прессе NewsViewController кнопку назад на предыдущую страницу

@IBAction func btnBack(sender: AnyObject) 
{ 
    let home = HomeTableViewController() 
    self.presentViewController(home, animated: true, completion: nil) 
} 

Если я нажал на кнопку возврата в NewsViewController, эта ошибка появился.

fatal error: unexpectedly found nil while unwrapping an Optional value

self.revealViewController().rearViewRevealWidth = 200 

Этот код имеет ошибку, и находится в HomeTableViewController. Я надеюсь, что кто-то может помочь мне в этом. Спасибо.

ответ

0

Вы должны dismisspresentedviewController:

@IBAction func btnBack(sender: AnyObject) 
{ 
    let home = HomeTableViewController() 
    self.dismissViewControllerAnimated(true, completion:nil); 
} 
+0

У меня все еще такая же проблема, она показывает ту же ошибку, что (фатальная ошибка: неожиданно обнаружена нуль при развертывании необязательного значения self.revealViewController(). RearViewRevealWidth = 200) Поскольку текущий контроллер представления не является контрольным контроллером, и Мне нужно вернуться к sw_front, я не мог этого сделать – jefferyleo

0

Вы получаете эту ошибку, потому что вы создаете новый HomeTableViewController в btnBack (и этот новый контроллер, вероятно, не revealViewController). Нет необходимости делать это. Вы можете просто позвонить self.dismissViewControllerAnimated(true, completion:{});, как предложил Ислам Вопрос:

@IBAction func btnBack(sender: AnyObject) 
{ 
    self.dismissViewControllerAnimated(true, completion:nil); 
} 
+0

Я удалил предыдущий код и добавлю в него свой код, у него нет ответа, мне нужно создать любой сеанс от NewsViewController до HomeTableViewController? – jefferyleo

+0

Нет, вы должны быть в порядке без segue. Есть ли вероятность, что NewsViewController будет нажата (через 'self.navigationController? .pushViewController (...)')? Если так, то вам нужно поместить его 'self.navigationController? .popToRootViewControllerAnimated (true)' – twealm

+0

Я не могу использовать pushViewController, так как я хочу перейти к TableView, поэтому tableView не применим в этой функции. Я пробовал popToRootViewControllerAnimated, он не может работать, но он не реагирует после того, как я нажал кнопку «Назад». – jefferyleo

Смежные вопросы