我打算挖掘shawnwall指出的idevrecipes示例,但還有另一個可能的答案,假設您希望New按鈕匹配標準UITabBarButton外觀。我同意它可能不是最好的用戶界面,但它是可行的。
對於初學者,您可以爲New項目創建一個虛擬視圖控制器。我不是說你應該複製地圖控制器或任何東西,我只是說創建一個空的視圖控制器和存儲到它(或它的位置)的一個屬性。假設你在application:didFinishLaunchingWithOptions:
創建標籤欄,它會是這個樣子。
self.newViewController = [[UIViewController alloc] init];
self.newViewController.title = NSLocalizedString(@"New", nil);
self.newViewController.image = [UIImage imageNamed:"new.png"];
掉落,在在標籤欄控制器的viewControllers
屬性相應的位置查看控制器。
保存對地圖控制器的引用,與保存虛擬新控制器的方式相同。
如果您還沒有完成,請將您的tabBarController的委託設置爲您的應用程序委託。您可能需要聲明的是應用程序委託符合UITabBarControllerDelegate
。
UITabBarDelegate
爲您提供了一些跟蹤標籤欄更改的掛鉤。 tabBarController:shouldSelectViewController:
看起來是爲我們勾在您需要的行爲的適當位置。
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
if ([viewController isEqual:self.newViewController]) {
self.tabBarController.selectedViewController = self.mapViewController;
// Whatever logic you need to start the recording
return NO;
}
return YES;
}
用戶交互的外觀有點奇怪 - 用戶選中中間項目(新建),但選中了左側的項目(地圖)。如果你想要「標籤欄觸發行爲」行爲,我會去idevrecipes路線,並使按鈕視覺上不同。如果你已經結婚了標籤欄項目看,但是,我相信這是你如何完成它。
用戶轉到地圖選項卡並添加一個「新」按鈕對用戶來說更直觀嗎?至少對我來說是這樣。 Apple不建議跳轉到代表用戶的選項卡上。 –
該應用程序背後的想法是用於記錄和共享用戶周圍的「風景」路線和圖片。我一直在使用POP(紙上原型,應用程序商店中的免費應用程序)將線框和原型放在一起來測試用戶體驗,並且讓標籤欄中間的按鈕在開始記錄路線時感覺更自然在Feed或地圖上具有「新建」的NavBar項目。 – HighFlyingFantasy
我明白你的意思了。但是,有兩個不同的地圖可能會讓用戶感到困惑,特別是如果他們幾乎完成同樣的事情。我想我會把地圖標籤放在中間位置,並創建一個大按鈕作爲地圖疊加層。我也有一個基於地圖的應用程序,有多個選項卡和多個地圖,但最終決定創建一個地圖選項卡,用戶可以在其上執行任何所需的任何操作,從而更容易。如果你仍然認爲這是要走的路,那麼你可以考慮視圖控制器遏制(iOS 6的一個新功能)。 –