2009-09-21 2 views
1

내 앱은 초기보기에서 하나의 탭 집합이 필요하며 마지막 탭 항목은 사용자가 선택한 후 인앱 구매를 위해 예약되어 있습니다. 그러나 사용자가 인앱 구매를 한 후에는 새로운 탭 세트를 표시하고 싶습니다. 사용자가 앱의 자유 부분과 탭 바가 다른 앱의 인앱 구매 부분 사이를 앞뒤로 전환 할 수있게하고 싶습니다.하나의 iPhone 앱에서 두 개의 다른 탭바를 어떻게 코딩합니까?

"TabBar1""TabItem의 1", 을 가지고 "TabItem의 2", "TabItem의 3""TabItem의 4"내 무료 앱에 대한, 사용자가 선택하는 예를 들면 : "TabItem 4" ... 환영 또는 인앱 구매 화면이 나타납니다. 사용자가 인앱 구매, "TabBar2"를 만드는 경우"TabItem의 1", "TabItem의 5", "TabItem의 6""TabItem4" 나타납니다. "TabItem1"은 앱의 무료 부분으로 돌아가고 "TabBar1"을 다시 선택하면 다시 나타납니다. 혼란스럽지 않았 으면 좋겠는데 ... 어떻게이 일을 완수합니까? 도와 주셔서 감사합니다.

이 탭바는 탐색 컨트롤러와 결합된다는 점을 잊어 버렸습니다.

답변

0

원하는 경우 언제든지 루트 tabbarcontroller의보기를 변경할 수 있으며, 또한 tabbaritems 제목 & 아이콘을 변경할 수 있습니다. 예를 들면 다음과 같습니다.

MyAppDelegate *appController = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    // Setting 1st tab + view + icon 
    ViewController1 *viewController1 = [[ViewController1 alloc] initWithNibName:@"ViewController1" bundle:nil]; 
favoritesController.title = @"Tab1 Title"; 
UINavigationController *navigationTab1Controller = [[[UINavigationController alloc] initWithRootViewController: viewController1] autorelease]; 
UITabBarItem *anItem = [[[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:0] autorelease]; 
navigationTab1Controller.tabBarItem = anItem; 

    // Setting 2st tab + view + icon 
ViewController2 *viewController2 = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil]; 
searchController.title = @"Tab2 Title"; 
UINavigationController *navigationTab2Controller = [[[UINavigationController alloc] initWithRootViewController:searchController] autorelease]; 
UITabBarItem *anItem1 = [[[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemSearch tag:1] autorelease]; 
navigationTab2Controller.tabBarItem = anItem1; 

    // Now setting the array of tab views, each one attached to its navigation controller 
NSArray *array = [[NSArray alloc] initWithObjects:self.navigationController, navigationTab1Controller, navigationTab2Controller, nil]; 
[appController.tabBarController setViewControllers:array animated:NO]; 
appController.tabBarController.selectedViewController = self.navigationController; 
UITabBarItem *anItem2 = [[[UITabBarItem alloc] initWithTitle:@"Tab3 Title" image:[appController thumbnailImage:@"image"] tag:2] autorelease]; 
self.navigationController.tabBarItem = anItem2; 

내 응용 프로그램의 상태에 따라보기 및 탭 집합이 변경됩니다. 다행히도 도움이된다

EDIT : function thumbnailImage는 이미지를 캐싱하고 메모리 누수를 방지하기 위해 작성한 함수입니다. 대신 imageNamed 또는 번들에서 이미지를 검색하는 다른 기술을 사용할 수 있습니다.

+0

답장을 보내 주신 Nava Carmon에게 감사드립니다. 이제이 코드를 구현하는 데 문제가 있습니다. 이 일에 대한 브리핑을 나에게 줄 수 있니? 이 코드 조각은 내 앱의 중추가 될 것이지만 매우 기술적 임에도 불구하고 코딩에 익숙하지 않아서이 코드를 내 프로젝트에 구현하기 위해 내 손을 잡아야 할 수도 있습니다. 어떤 도움을 환영합니다 – SympleMyne

+0

문제가 무엇인지 자세히 설명해 주시겠습니까? 자세한 내용을 입력하십시오. 기꺼이 도와 드리겠습니다. –

0

이 방법이 가능할 수도 있지만 사용자 경험 관점에서 제안하는 것이 좋습니다. 사용자 인터페이스 아래에서 탐색 UI의 핵심 부분을 바꿔 놓는 것은 일부 사용자를 혼란스럽게 만들고 이러한 상황에서는 실제로 필요하지 않습니다.

사용자에게 피드백을 제공 할 수있는 많은 방법이 있으며 인앱 구매를 처리 할 수있는 많은 방법이 있으며 잠재적으로 사용자를 혼란스럽게 할 수없는 일부 모형의 모형을 만드는 것이 좋습니다.

관련 문제