2011-10-05 79 views
0

我正在用UITabBarController創建iPhone應用程序。
我想實現的是,當我點擊tabbar上的一些項目時,我不希望它們激活新視圖,而不是它,我希望它們在當前視圖中運行一些功能。 例如我有一個地圖活動的視圖,當我點擊tabbar上的一些項目時,我希望它找到地圖上的當前位置。
我不知道如果使用UITabBarController是最好的解決方案。我還想讓1個項目在2個視圖(地圖/列表)之間切換。
在底部使用某種ToolBar還是使用完全不同的東西會更好?
我不認爲有任何需要的代碼,但是我有一個UITabBarViewController創建的應用程序,我創造了這樣的UITabBarControllerDelegate:UITabBarController - 不顯示視圖

@interface MainTabBarControllerDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> { 
    UIWindow *window; 
    UITabBarController *tabBarController; 
} 

@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController; 

@end 

@implementation MainTabBarControllerDelegate 

@synthesize tabBarController, window; 

- (void)applicationDidFinishLaunching:(UIApplication *)application 
{ 
    tabBarController.delegate = self; 
    [window addSubview:tabBarController.view]; 
} 

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController{ 
    return YES; 
} 

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{ 

} 

@end 

但我不知道如何實現功能。 謝謝。

+0

如果你想執行一些動作像你說的這是在相同的控制器中執行,然後使用UITabBarViewController不是首選選項。你可以使用簡單的按鈕,它可以給你一個tabBar的幻覺。 –

+0

這將是非常不尋常的&混淆你的應用程序的潛在用戶的廢話(甚至可能是反對蘋果的HIG,但不知道)。如果您想在當前視圖中執行特定任務,請使用UIToolbar或UISegmentedControl。 – mja

回答

1

你是對的,你不需要UITabBarController這個。 A UIToolbar或您自己定製的UIView就足夠了。但是,如果你想使用UITabBarController,你就必須覆蓋其一貫的運作:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController{ 
return NO; //do not select any view controller here 
} 

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{ 
    // find which tab was tapped here and handle the map's current position 
    // location operation accordingly 
} 

您也可以參考this link更多的技巧......

+0

不是我想要使用它,這只是我的第一個想法,它完全覆蓋每個項目(或大多數)的功能似乎是錯誤的,我會嘗試檢查UIToolbar,謝謝:)。 – haluzak