2016-03-02 2 views
1

У меня есть контроллер просмотра, у которого есть кнопка. при нажатии этой кнопки второй vc добавляется поверх первого контроллера представления. Когда я нажимаю кнопку на втором vc, он удаляет из супервизора .... но это не вызывает viewwillappear, где вызывается мои методы. Поэтому несколько вещей, которые работают, как перезагрузка стола ...Swift removeFromSuperview не запускает viewWillAppear

Может кто-нибудь объяснить, как заставить это работать? Благодаря

Update 1 Код Добавлено

как я добавить второй VC

let blurEffectView = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.Dark)) 

    if !UIAccessibilityIsReduceTransparencyEnabled() 
    { 
     self.view.backgroundColor = UIColor.clearColor() 

     blurEffectView.frame = self.view.bounds 
     blurEffectView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight] 
     blurEffectView.alpha = 0 
    } 
    newView.view.alpha = 0.0 

    self.view.addSubview(blurEffectView) 
    self.view.addSubview(newView.view) 

    UIView.animateWithDuration(0.8){ 

     self.newView.view.alpha = 1 
     self.blurEffectView.alpha = 1 
    } 

Как я могу удалить 2-ой VC

ViewController().blurEffectView.removeFromSuperview() 
+1

Не могли бы вы выслать код? Как добавить второй vc? – ClockWise

+0

добавлен код, извините за это – RubberDucky4444

ответ

1

Проблема с кодом является то, что вы делаете не нажимайте новый UIViewController, вы просто добавляете UIView поверх него. ViewWillAppear будет запускаться только тогда, когда UIViewController не тот, что находится поверх стека, и один из них удаляется (с помощью увольнения).

self.view.addSubview(blurEffectView) 
self.view.addSubview(newView.view) 

Эти строки просто добавьте UIViews в качестве подвидов к текущей UIViewController.view и активный UIViewController по-прежнему один вы находитесь, а это означает, что удаление подвидов не будет вызывать любой из методов обратного вызова для UIViewController. Я верю, что вам лучше позвонить по вашим методам, прежде чем вы сделаете ViewController().blurEffectView.removeFromSuperview()

Я мог бы неправильно понять, хотя, поскольку это всего лишь фрагмент кода, и я даже не знаю, в какой функции он находится. помочь было бы проще, если бы вы могли загрузить образец проекта.

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