2016-01-19 3 views
1

В моей главной UIViewController врезать в UINavigationController У меня есть добавить UILabel в Панель навигации с помощью этого кода:Удалить подвид Быстрее

if let navigationBar = self.navigationController?.navigationBar { 

     let frameDomanda = CGRect(x: navigationBar.frame.width/2 - domandaN.frame.width/2, y: -10, width: domandaN.frame.width, height: navigationBar.frame.height) 

     domandaN.frame = frameDomanda 
     let secondLabel = UILabel(frame: secondFrame) 
     secondLabel.text = "Second" 

     navigationBar.addSubview(domandaN) 
    } 

Но когда я изменяю КОНТРОЛЛЕР UILabel фиксирована. Она не исчезает, поэтому я добавил этот код:

override func viewDidDisappear(animated: Bool) { 
    domandaN.removeFromSuperview() 
} 

Это работает, но я хочу, чтобы исчезнуть сразу после нажатия кнопки возврата. Не нравится это изображение: ("пример" текст уходит позже)

enter image description here

+2

Попробуйте установить этот код в 'viewWillDisappear'instead и посмотреть, не имеет значения. –

+1

@ RashwanL что именно то, что я собирался сказать :) – Cristik

+0

Perfect! У Put есть ответ;) –

ответ

0

Просто добавьте его в viewWillDisappear вместо этого:

override func viewWillDisappear(animated: Bool) { 
    domandaN.removeFromSuperview() 
} 

Для параметра анимации:

Если значение true, то исчезает вид просмотра.

+0

in viewWillDisappear параметр анимированный не существует –

+0

@Sarita проверить [ссылку] (https://developer.apple.com/библиотека/ИОС/документация/UIKit/Справка/UIViewController_Class/# // apple_ref/ОКК/instm/UIViewController/viewWillDisappear :). 'func viewWillDisappear (_ animated: Bool)'. –

0

Вы можете использовать viewWillDisappear, и не забудьте позвонить супер:

- (void)viewWillDisappear:(BOOL)animated { 
    [super viewWillDisappear:animated]; 
    // you code here 
} 
+0

В чем разница, если я не пишу super.viewWillDisappear (анимированный)? –

+0

http://stackoverflow.com/questions/3906704/when-should-i-call-super – shpasta

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