В моем приложении я использую табуляцию. В первый раз, когда приложение загружается, он вызывает функции в viewDidload
. Но когда я нажимаю на другие вкладки и снова нажимаю на первую вкладку, мне нужно вызвать функции в viewWillAppear
. Он не звонил, когда я снова нажимаю на 1-ю вкладку. Есть идеи?Вид появится, не получив вызов
ответ
В вашем делететеле делегата UITabBarController (didSelectViewController) вызывается [viewController viewWillAppear:YES];
, и тогда все должно быть в порядке.
viewDidLoad
вызывается, когда контроллер завершил настройку его вида, это происходит, когда контроллер вида выделен, и когда контроллер вида отображается после предупреждения о памяти, которое заставляет его скрывать представление.
Если вам нужно сделать что-то каждый раз, когда показывается Ваше мнение, используйте viewDidAppear
или viewWillAppear
Не отвечает на вопрос. – memmons
вызов [супер viewDidLoad] или [супер viewWillAppear], где вы хотите. Но я бы предложил вам создать общий метод (который вы пытаетесь реализовать в viewDiDLoad или viewWillAppear) и вызвать первый раз этот метод в viewDidLoad/viewWillAppear и после этого, когда нажата кнопка панели вкладок, вызовите ваш метод.
Никогда не делайте этого. См. Мой комментарий выше. – memmons
@ Харконян, что не так, как вы нашли в моем ответе, вы полностью не читали мой ответ, и я предложил ему сделать это по-другому. –
Вы никогда не должны вызывать [super viewDidLoad] или [super ViewWillAppear] - когда-либо - вне методов просмотра viewDidLoad или viewWillAppear. – memmons
- 1. вид появится/появится при повторном появлении
- 2. Невозможно перенаправить на ожидаемый вид, получив 404
- 3. UICollectionView - выберите первую ячейку, поскольку вид появится
- 4. Сделайте вид, не получив событие прокрутки, но просто коснитесь события
- 5. Директива, не работающая в Angularjs, не получив вызов
- 6. GoogleApiClient бросает «GoogleApiClient еще не подключен» ПОСЛЕ onConnected, получив вызов
- 7. Получение силовой связи подключенного Wi-Fi (не получив вызов)
- 8. ListView не появится в TabItem
- 9. Не получив значение api return
- 10. Не получив ответа после PostAsync
- 11. Сохранить, не получив lastInsertId
- 12. JavaScript - Не получив результата
- 13. Не получив Paypal ExpressCheckOut
- 14. Не получив электронную почту
- 15. Вызов вид из JavaScript
- 16. Мягкая клавиатура не появится
- 17. wxpython textentrydialog не появится
- 18. iphone keyboard не появится
- 19. Android toast не появится
- 20. 2nd JOptionPane не появится
- 21. TextView не появится? (Android)
- 22. PictureBox не появится C#
- 23. NSPredicateEditor просто не появится
- 24. Почему строка не появится?
- 25. Вызов setNeedsDisplay: ДА на слое-хостинг вид не перерисовывать вид
- 26. MFMailComposeViewController не появится в iOS8
- 27. Появится ли вид из определенного метода View Controller?
- 28. Частичный вид не рендеринг через вызов ajax
- 29. Как переместить весь вид вверх, когда клавиатура появится? (Свифт)
- 30. Не получив полный ответ JSON
Вы никогда не должны вручную ссылаться на методы, которые запускают события, такие как 'viewDidLoad' или' viewWillAppear'. Если они не стреляют, это происходит потому, что происходит что-то еще. Попытка называть их вручную вызовет бесконечные проблемы. – memmons
Человек, который вы потрясающий ... это точный ответ для этого ... Я сделал это и отлично работал для меня. Великий ответ :) –
У базового класса UIViewController есть код, который запускается в viewWillAppear. Вы будете сталкиваться с неожиданными проблемами, если вы вызовете это вручную. – memmons