我有一個tabBarController
,我通過將下面的代碼添加:iPhone - 通過UITabBarItem和dismissModalViewController presentModalViewController乾淨
AppDelegate.h:
...
UITabBarController IBOutlet *tabBarController;
}
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
AppDelegate.m:
...
[self.window addSubview:tabBarController.view];
[self.window makeKeyAndVisible];
[tabBarController setDelegate:self];
然後我用下面的代碼來呈現一個模式條形碼掃描的視圖控制器:
- (void)tabBarController:(UITabBarController *)tbc didSelectViewController:(UIViewController *)vc {
// Middle tab bar item in question.
if (vc == [tabBarController.viewControllers objectAtIndex:2]) {
ScanVC *scanView = [[ScanVC alloc] initWithNibName:@"ScanViewController" bundle:nil];
// set properties of scanView's ivars, etc
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:scanView];
[tabBarController presentModalViewController:navigationController animated:YES];
[navigationController release];
[scanView release];
}
}
當它真正得到展示我覺得這個方法不夠吸引人,因爲當我關閉該模式的看法,我把回到空視圖。
許多條碼掃描應用程序或應用程序,例如簡單地顯示圖像選擇器;做得很成功。我只是想知道爲了達到這樣的效果他們會用什麼樣的實現。
這就是所謂的路徑的應用程序的截圖,其中有完全相同的功能,我以後:
我還注意到,在這些應用中,如果你在其他任何比中間的一個標籤欄項目,我們可以說,並且您單擊顯示模式視圖的標籤欄項目,一旦它被解散它實際上不會將它們帶回到它視爲正常的空白視圖,但實際選項卡顯示模態視圖的酒吧項目從未被選中。如果這是實現這種類型效果的唯一方法,我會對這種類型的功能感到滿意。
任何幫助將不勝感激,因爲我一直堅持了很長一段時間。此外,我甚至不確定是否將所有代碼放入我的AppDelegate
以便將View Controller作爲模式呈現的正確方法。這一切似乎都是錯的。
我想你會發現Path應用程序使用自己的標籤欄控制器實現。即不是來自Cocoa Touch的`UITabBarController` – ohhorob 2011-01-17 04:21:52