我正在使用UITabBarController创建一个iPhone应用程序
我想要实现的是,当我点击tabbar上的一些项目时,我不希望它们激活新视图,而不是它我希望它们在当前视图中运行某些功能。
例如,我有一个活动地图的视图,当我点击标签栏上的某个项目时,我希望它在地图上找到当前位置。
我不知道使用UITabBarController是否是最佳解决方案。我还想要1个项目在2个视图之间交换(地图/列表)
在底部或任何完全不同的东西上使用某种ToolBar会更好吗?
我不认为有任何代码需要,但我已经创建了一个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
但我不知道如何实现这一功能。 感谢。
答案 0 :(得分:1)
你没错,你不需要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
}
您还可以参考this link了解更多提示......