У меня проблемы с программным удалением стеков из вида.Я делаю вещи немного запутанными, что, безусловно, не помогает.Вот что я хочу сделать:
- Пользователь находится на одной вкладке контроллера представления вкладок.
- Пользователь выбирает элемент из таблицы, который содержит URL.
- Приложениепереключается на другое представление вкладки и устанавливает существующий UIWebView для выбранного URL.
- Все представления, которые находятся в стеке UIWebView, извлекаются, показывая UIWebView.
У меня естьк третьему шагу работает нормально.Но, похоже, не может вытолкнуть какие-либо взгляды из стека.Вот моя попытка:
- (void)openAndDisplayURL:(NSString*)URL {
tabBarController.selectedIndex = 0;
UIViewController *selectedController = tabBarController.selectedViewController;
if ([selectedController isKindOfClass:[UINavigationController class]]) {
UINavigationController *controller = (UINavigationController*)selectedController;
NSArray *views = controller.viewControllers;
for (id view in views) {
if([view respondsToSelector:@selector(openURLWithString:)]) {
NSString *completeURL = [NSString stringWithFormat:@"http://%@",URL];
[view openURLWithString:completeURL];
} else if ([selectedController isKindOfClass:[UINavigationController class]]) {
UINavigationController *subcontroller = (UINavigationController*)selectedController;
[subcontroller.navigationController popViewControllerAnimated:NO];
}
}
}
}
Отладка показывает ожидаемое количество просмотров ожидаемого типа.Он правильно входит в блок else
, когда необходимо удалить представление, но вызов popViewControllerAnimated:
ничего не делает.
Любая помощь будет оценена.