У меня следующий вопрос:
В моем проекте у меня есть следующее:
UITabBarController
.... Некоторые UINAvigationControllers ....
* (1) UINavigationController
UIViewController (UItableView) - When select one row it goes to...(by push) to:
UIViewController (UItableView) - And here the same than before, for each row i open a new tableview....
Моя проблема в том, что когда я щелкаю элемент панели вкладок, я вижу представление viewController, как в прошлый раз, когда я видел это, и не перезагружаюсь к * (1) первому представлению в другой раз (как я хотел бы)
Где мне нужно писать sth каждый раз, когда я щелкаю элемент панели вкладок, я перезагружаю первый вид этого элемента панели вкладок.
PD: у меня есть вызов: [theTableView reloadData]; в методе "viewWillAppear".
То, что я делаю, это:
В моем контроллере навигации у меня есть View Controller (например, tableview), и когда я щелкаю в одной строке, в методе didSelectRowAtIndexPath я создаю другой View Controller, вызывающий myController, и я нажимаю на этот элемент следующим образом ([[self navigationController] pushViewController) : myController animated: YES];)
И это каждый раз, когда я кликаю в одной строке в следующих таблицах.
Тогда я думаю, что проблема не в том, чтобы перезагрузить табличное представление в методе viewWillAppear, а в том, чтобы вынуть с экрана следующий контроллер представлений, который я вставил в корневой.
Я прав?
В РЕЗЮМЕ:
Мое приложение имеет следующее:
- Панель вкладок для перемещения между экранами
- Навигация внутри каждой вкладки (насколько вы хотите), почему? потому что все tabBarItems показывают таблицы, и если вы щелкаете в одной строке, вы открываете другую таблицу, .....
Моя проблема в том, что я бы хотел вернуться к 1-й главной таблице, когда я нажал на панели вкладок. На данный момент приложение не делает этого, оно продолжает работу с экрана (представление таблицы), которое было последним посещением этой вкладки. (Это не совсем так, потому что, если я щелкаю два раза, да, он возвращается, но не входит в методы "viewWillLoad" или "didSelectViewController", потому что я создал NSLogs, а он их не показывает).
Эскиз может быть таким:
AppDelegate -> WelcomeScreen -> VideosTableViewController -> RElatedVideosTableViewController -> ..... ..... ....
Первое, что нужно показать экран приветствия (не так важно, только некоторые кнопки), и в этом классе у меня есть TabBArController, инициализированный с "localViewControllersArray", который является NSMutableArray для NavigationControllers, каждый из которых инициализируется одним ViewController.
Затем, когда я нажимаю одну из кнопок на этом экране приветствия, я показываю контроллер панели вкладок (показывает VideosTableViewController)
На следующем шаге, когда я щелкаю в одной строке, в «DidSelectRowAtIndexPath» я создаю RElatedVideosTableViewController и нажимаю это с помощью «[[self navigationController] push ....:« Анимированное представление таблицы связанных видео, которое я создаю ») : ДА];
И у меня также есть:
Добавить: UITabBarControllerDelegate
Добавить:
(аннулируются) tabBarController: (UITabBarController *) tabBarController
didEndCustomizingViewControllers:
(NSArray *) viewControllers
изменено: (BOOL) изменено {}
(аннулируются) tabBarController: (UITabBarController *) tabBarController
didSelectViewController: (UIViewController *) ViewController
{если ([viewController
isKindOfClass: [UINavigationController
учебный класс]])
{[(UINavigationController *) viewController popToRootViewController: NO];
[theTableView reloadData];
NSLog (@ "Reload");
}}
И при инициализации класса:
[super.tabBarController setDelegate: self];
Но в консоли я не вижу NSLog, который я делаю, тогда не будет в этом методе.