SWRevealViewController не будет работать после того, как я перейду к дочернему контроллеру представления и вернусь к предыдущему контроллеру представления

Я работаю с SWRevealViewController. И я полностью реализовал приложение через выдвижное главное меню. Но когда я перехожу к одному VC, у которого есть дочерний элемент, из которого я могу вернуться, self.revealViewController() возвращает nil для предыдущего/родительского VC. И кнопка главного меню больше не работает. Я программирую на Свифте. На изображении ниже показана навигация с помощью VC. У меня есть проекты UITableviewcontroller и кнопка + для добавления нового проекта. После нажатия на + появится новый VC Добавить новый проект. Если я нажму кнопку «Отмена», будут представлены проекты VC, но кнопка главного меню не работает, и я не могу открыть главное меню. Может ли кто-нибудь помочь мне с этой проблемой? Спасибо за ваше время и помощь.

Навигация

Это код, начало класса ProjectsView, где я устанавливаю SWViewController для каждого VC.

class ProjectsView: UITableViewController {

    @IBOutlet var mainMenuBttn: UIBarButtonItem!

    var projects: [String] = ["Project1", "Project3", "Project3"];

    override func viewDidLoad() {
        super.viewDidLoad()

        if self.revealViewController() != nil {
            mainMenuBttn.target = self.revealViewController()
            mainMenuBttn.action = "revealToggle:"
            self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
        }

    }

...


person matt koder    schedule 19.11.2015    source источник
comment
на основе SWL у вас есть только одно имя корневого контроллера Add New Project, тогда как его вернуть, братан   -  person Anbu.Karthik    schedule 19.11.2015
comment
Это только часть навигации.   -  person matt koder    schedule 19.11.2015
comment
основываясь на вашем коде, я ответил, братан, если вы добавите еще немного кода, мы сможем что-то найти   -  person Anbu.Karthik    schedule 19.11.2015
comment
Я отредактировал свой вопрос. Я добавил код, в котором self.revealViewController() возвращает nil в операторе if. Я не могу добавить другой код, потому что для этого нет релевантного. Все остальное делается с помощью UIStoryboard.   -  person matt koder    schedule 19.11.2015


Ответы (1)


Вам не нужен переход от добавления нового проекта к вашему начальному навигационному контроллеру. Создайте IBAction для кнопки отмены, например:

@IBAction func cancel(sender: AnyObject) {
       self.dismissViewControllerAnimated(true, completion: nil)
    }

То же самое для кнопки «Готово». Как и сейчас, вы создаете новый экземпляр ProjectsView каждый раз, когда возвращаетесь из Добавить новый проект.

person beyowulf    schedule 19.11.2015