2013-03-27 3 views
0

나는 탭 바를 사용하여 ios 용 앱을 개발 중입니다. 바에 5 개 이상의 버튼이 있으므로 아이폰에는 버튼이 더 있습니다. 이제이 버튼이 있다고 가정 해 보겠습니다. Button1 Button2 Button3 Button4 More (및 More) Button5 Button6. More를 클릭하고 Button5를 누르면 Button5와 관련된보기로 이동합니다. 그런 다음 Button2를 클릭하면 (더 이상 표시되지 않음) Button2와 관련된보기로 이동합니다. 지금까지 너무 좋아. 이제 More를 클릭하면 More Tab으로 이동하지 않고 Button5와 관련된보기로 돌아갑니다. 더 많은 버튼을 더보기로 전환하려면 어떻게해야합니까?더 많은 버튼을 더보기 좋게하려면 어떻게합니까?

답변

0

내가 문제

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
    UITabBarController* tabBarController2 = (UITabBarController*)self.window.rootViewController; 
    if (tabBarController2.selectedIndex < 4) { 
     [tabBarController2.moreNavigationController popViewControllerAnimated:NO]; 
    } 
} 
+0

표시 방법이 있습니까 버튼 5와 버튼 6을 포함하는 버튼이 더 많이 표시되는 대신 탭 막대의 여섯 개의 버튼 pls는 – UserDeviOS

0

다른 방법으로는 사용자가 more를 누르면 항상 첫 번째 버튼이 제거되고 다른 버튼이 추가됩니다. 기본적으로 배열을 만들고 그 안에 모든 버튼을 유지할 수 있습니다. 그리고 나서 버튼을 누르면 특정보기로 이동할 수 있습니다. 예를 들어

:

처음에 당신은 : Button1Button2Button3Button4Next

다음을 클릭 한 후 : PrevButton3Button4Button5Button6

+0

cool. 나는 객관적으로 그렇게 전문적이지 못하다. 그렇 겠지. ^^ ' –

1

당신은 더 버튼을 추가 할 필요가 없습니다. 보기 컨트롤러를 UITabBarController로 설정하십시오.

- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated 

그리고 5 개 이상의보기 컨트롤러가있는 경우 더 많은 버튼이 자동으로 생성됩니다! 즉,있는 NSArray의 수는 5

+0

네, 알고 있습니다. 문제는 버튼을 클릭하면 항상 더 많은보기에서 선택한 마지막보기를 표시하는 대신 다섯 번째 다음 버튼에 대한 링크를 보여주는 추가보기입니다. ^^ –

+0

탭 표시 줄에는 사용자 정의를 표시하기위한 공간이 제한되어 있습니다 항목. 탭 표시 줄 컨트롤러에 6 개 이상의 사용자 지정보기 컨트롤러를 추가하면 탭 표시 줄 컨트롤러는 처음 네 개의 항목과 표준 표시 줄 항목 만 탭 표시 줄에 표시합니다. More 항목을 누르면 나머지 항목을 선택할 수있는 표준 인터페이스가 나타납니다. 표준 More 항목의 인터페이스에는 사용자가 탭 표시 줄을 재구성 할 수있는 편집 버튼이 있습니다. –

+0

나는 정확히 당신이 원하는 것을 얻지 못하고 있습니다! 더 자세히 설명 할 수 있습니까? –

0
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 
    UIViewController *viewController1 = [[UIViewController alloc] init]; 
    UIViewController *viewController2 = [[UIViewController alloc] init]; 
    UIViewController *viewController3 = [[UIViewController alloc] init]; 
    UIViewController *viewController4 = [[UIViewController alloc] init]; 
    UIViewController *viewController5 = [[UIViewController alloc] init]; 
    UIViewController *viewController6 = [[UIViewController alloc] init]; 
    UIViewController *viewController7 = [[UIViewController alloc] init]; 
    UIViewController *viewController8 = [[UIViewController alloc] init]; 
    UIViewController *viewController9 = [[UIViewController alloc] init]; 

    [viewController1.view setBackgroundColor:[UIColor whiteColor]]; 
    [viewController2.view setBackgroundColor:[UIColor redColor]]; 
    [viewController3.view setBackgroundColor:[UIColor greenColor]]; 
    [viewController4.view setBackgroundColor:[UIColor grayColor]]; 
    [viewController5.view setBackgroundColor:[UIColor blueColor]]; 
    [viewController6.view setBackgroundColor:[UIColor yellowColor]]; 
    [viewController7.view setBackgroundColor:[UIColor brownColor]]; 
    [viewController8.view setBackgroundColor:[UIColor magentaColor]]; 
    [viewController9.view setBackgroundColor:[UIColor purpleColor]]; 

    [viewController1 setTitle:@"one"]; 
    [viewController2 setTitle:@"two"]; 
    [viewController3 setTitle:@"three"]; 
    [viewController4 setTitle:@"four"]; 
    [viewController5 setTitle:@"five"]; 
    [viewController6 setTitle:@"six"]; 
    [viewController7 setTitle:@"seven"]; 
    [viewController8 setTitle:@"eight"]; 
    [viewController9 setTitle:@"nine"]; 

    self.tabBarController = [[UITabBarController alloc] init]; 
    self.tabBarController.viewControllers = @[viewController1, viewController2, viewController3, viewController4, viewController5, viewController6, viewController7, viewController8, viewController9]; 
    self.window.rootViewController = self.tabBarController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

내가 노력하고 샘플 AppDelegate에 코드를 추가 한을 해결하기 위해 내 응용 프로그램 delegate.m이 코드를 사용하여 더 이상 자사의 나를 위해 절대적으로 잘 작동합니다. 당신이이 문제에 어떤 문제가 있는지 알려주십시오.

+0

을 제안합니다. 더 간단한 해결책을 찾았지만 정말 대단합니다! 정말 고마워요! 저 같은 초보자에게는 순금입니다! –

관련 문제