2011-10-05 6 views
0

UITabBarController를 사용하여 iPhone 응용 프로그램을 만들고 있습니다.
내가 원하는 것은 탭바에서 일부 항목을 탭할 때 새보기를 활성화하지 않고 대신 현재보기에서 일부 기능을 실행하기를 원합니다. 예를 들어지도가 활성 상태 인보기가 있고 Tabbar에서 항목을 클릭하면지도의 현재 위치가 표시됩니다.
UITabBarController를 사용하는 것이 가장 좋은 해결책인지 잘 모르겠습니다. 또한 2 개의보기 (지도/목록)간에 교환 할 항목이 1 개 필요합니다.
바닥에 도구 모음을 사용하는 것이 더 낫지 만 완전히 다른 것이 있습니까?
내가 거기에 필요한 코드입니다,하지만 난 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

: 당신이 UITabBarController을 사용하려는 경우, 당신은 평소의 기능을 재정의해야합니다 같은 컨트롤러에서 UITabBarViewController를 사용하는 것이 바람직한 옵션이 아닙니다. 간단한 버튼을 사용하면 TabBar를 대신 사용할 수 있습니다. –

+0

애플의 잠재적 인 사용자들로부터 매우 드물고 혼란스러워 할 것입니다 (심지어 애플의 HIG에 대한 것일 수도 있지만 확실하지는 않습니다). 현재보기에서 특정 작업을 수행하려면 UIToolbar 또는 UISegmentedControl을 사용하십시오. – mja

답변

1

맞습니다.이 경우 UITabBarController이 필요하지 않습니다. UIToolbar 또는 자신의 사용자 정의 UIView이면 충분합니다. 당신이 말한 것처럼 일부 작업을 수행하려면

- (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

관련 문제