4
我剛剛發現它是多麼容易(或至少應該是)做state persistence with Three20 library。但是,我無法弄清楚如何使用帶有標籤欄的URL映射器(UITabBarController
)。Three20的基於URL的導航+標籤欄示例?
的情況是這樣的:
- 我有四個標籤和不同的控制器爲他們:
FirstViewController
,SecondViewController
,ThirdViewController
和FourthViewController
。 - 我想分別將它們映射到
tt://tabs/first
,...,tt://tabs/fourth
,並在應用程序關閉時將它們保存在某處,以便在應用程序再次啓動時自動打開之前查看的選項卡。
到目前爲止我的代碼:
// Init the tab bar
tabBarController = [[UITabBarController alloc] init];
[tabBarController setDelegate:self];
// Init the navigator
TTNavigator *navigator = [TTNavigator navigator];
[navigator setWindow:window];
[navigator setPersistenceMode:TTNavigatorPersistenceModeAll];
// Begin mapping
TTURLMap *map = [navigator URLMap];
[map from:@"tt://tabs" toViewController:[UIViewController class]];
[map from:@"tt://tabs/first" toViewController:[FirstViewController class]];
[map from:@"tt://tabs/second" toViewController:[SecondViewController class]];
[map from:@"tt://tabs/third" toViewController:[ThirdViewController class]];
[map from:@"tt://tabs/fourth" toViewController:[FourthViewController class]];
// Try restoring
if (! [navigator restoreViewControllers]) {
// Open default
TTURLAction *defaultAction = [[TTURLAction alloc] initWithURLPath:@"tt://tabs/default"];
[defaultAction setParentURLPath:@"tt://tabs"];
[navigator openURLAction:defaultAction];
}
// Put view controllers to tab bar
[tabBarController setViewControllers:[NSArray arrayWithObjects:
[[FirstViewController alloc] init],
[[SecondViewController alloc] init],
[[ThirdViewController alloc] init],
[[FourthViewController alloc] init],
nil]];
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
我怎麼TTNavigator
打開最後打開的選項卡,如果有沒有 - 回退到FirstViewController
?