Это добьется цели:
dir(module)
Однако при нахождении его раздражающим для чтения возвращенного списка, просто используйте следующий цикл для получения одного имени на строку.
for i in dir(module): print i
Вы можете использовать следующее.
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
NSArray *viewControllers = self.navigationController.viewControllers;
if (viewControllers.count > 1 && [viewControllers objectAtIndex:viewControllers.count-2] == self) {
// View is disappearing because a new view controller was pushed onto the stack
NSLog(@"New view controller was pushed");
} else if ([viewControllers indexOfObject:self] == NSNotFound) {
// View is disappearing because it was popped from the stack
NSLog(@"View controller was popped");
}
}
Это, из Конечно, возможно, потому что стек контроллера представления UINavigationController (представленный через свойство viewControllers) был обновлен к моменту вызова viewWillDisappear.
Я предполагаю, что вы имеете в виду, что ваше представление перемещается вниз по стеку контроллера навигации путем нажатия нового представления, когда вы говорите, что оно помещено в стек. Я бы предложил использовать метод viewDidUnload
, чтобы добавить оператор NSLog
, чтобы записать что-то в консоль, чтобы вы могли видеть, что происходит, вы можете добавить NSLog
в viewWillDissappeer
.
Если вы просто хотите узнать, становится ли ваш взгляд, я просто обнаружил, что Self.navigationController
- Nil
в ViewDidDisAppear
, когда он удален из стопки контроллеров. Так что это простое альтернативное тест.
(Это я обнаруживаю после попытки всевозможных других непрерывок. Я удивлен, что нет протокола контроллера навигации, чтобы зарегистрировать контроллер просмотра, который будет уведомлен на POPS. Вы не можете использовать UinavigateControllerDelegate
, потому что на самом деле Настоящий дисплей работает.)