TTNavigator перезагрузить приложение внутри
Я заблокирован полным обновлением моего приложения. Я использую Three20 Framework и TTNavigator. В какой-то момент я хотел бы удалить и освободить все мои представления и viewcontroller (так что у меня пустой экран), а затем распределить их снова. Но я не знаю, как это сделать. В моем методе didFinishLaunchingWithOptions я просто делаю это:
TTNavigator* navigator = [TTNavigator navigator];
navigator.persistenceMode = TTNavigatorPersistenceModeNone;
navigator.delegate = self;
navigator.window = self.window;
TTURLMap* map = navigator.URLMap;
[map from:@"cc://home" toSharedViewController:[HomeViewController class]];
[map from:@"cc://pictures" toViewController:[PicturesViewController class]];
Я действительно не знаю, как полностью перезагрузить мои представления и контроллеры представления. Спасибо!
1 ответ
Это действительно зависит от того, кто ваш первый контроллер в приложении. Вы не можете реально изменить этот первый контроллер, так как три 20 должны начаться откуда-то.
Предполагая, что вам нужна эта возможность, я предлагаю вам: 1. создать фальшивый корневой контроллер и использовать его в качестве первого контроллера, который использует три20. 2. в этом контроллере выведите настоящий контроллер в стек без анимации. 3. когда вы хотите перезагрузить свой контроллер, просто вытолкните весь контроллер (что-то вроде [self.navigationController popToRootViewControllerAnimated:YES]). 4. поймать тот факт, что корневой контроллер (поддельный) о шоу и подтолкнуть настоящий корневой контроллер.
Кстати, предполагая, что ваш корневой контроллер является TabController, вы всегда можете заменить контроллер вкладок, используя свойство viewControllers в tabcontrol.