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.

Другие вопросы по тегам