TTNavigator перезагрузить приложение внутри - PullRequest
0 голосов
/ 28 марта 2012

Я заблокирован полным обновлением моего приложения. Я использую 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 Ответ

2 голосов
/ 29 марта 2012

Это действительно зависит от того, кто ваш первый контроллер в приложении.Вы не можете реально изменить этот первый контроллер, так как три 20 должны начать откуда-то.

Предполагая, что вы хотели бы эту способность, я предлагаю вам сделать следующее: 1. создать поддельный корневой контроллер и сделать его первымконтроллер три20 использует.2. в этом контроллере выведите настоящий контроллер в стек без анимации.3. когда вы хотите перезагрузить контроллер, просто вытолкните весь контроллер (что-то вроде [self.navigationController popToRootViewControllerAnimated: YES]).4. поймать тот факт, что корневой контроллер (фальшивый) собирается показать, и выдвинуть настоящий корневой контроллер.

Кстати, если ваш корневой контроллер является TabController, вы всегда можете заменить контроллер вкладок, используя свойство viewControllersна вкладке управления.

...