UITabBarController - не показывать вид - PullRequest
0 голосов
/ 05 октября 2011

Я создаю приложение для iPhone с UITabBarController.Чего я хочу достичь, так это того, что когда я нажимаю некоторые элементы на панели вкладок, я не хочу, чтобы они активировали новое представление, вместо этого я хочу, чтобы они запускали некоторые функции в текущем представлении.Например, у меня есть вид с активной картой, и когда я щелкаю какой-либо элемент на панели вкладок, я хочу, чтобы он нашел текущую позицию на карте.Я не знаю, является ли использование UITabBarController лучшим решением для этого.Я также хочу, чтобы 1 элемент поменялся местами между двумя видами (карта / список).Было бы лучше использовать какую-нибудь панель инструментов внизу или что-то совершенно другое?Я не думаю, что нужен какой-либо код, но у меня есть приложение UITabBarViewController, и я создал UITabBarControllerDelegate следующим образом:

@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

Но я нене знаю, как добиться функциональности.Спасибо.

1 Ответ

1 голос
/ 05 октября 2011

Вы правы, вам не нужно UITabBarController для этого. 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
}

Вы также можете обратиться к этой ссылке для получения дополнительных советов ...

...