문제

맞춤 UitabbarController를 작성하여 탭 막대의 모양을 완전히 제어 할 수 있습니다. 모든 것이 작동하여 처리 할 수있는 뷰 컨트롤러가 있습니다.

컨트롤러에는 화면을 채우는 기본보기가 있으며 내부에는 탭 막대의 하단에 UIView가 있습니다. 해당 탭 바보기에는 각보기 컨트롤러에 대한 버튼이 있습니다. 버튼을 누르면 뷰 컨트롤러보기를 기본보기에 추가하고 탭 막대보기를 덮지 않도록 프레임을 설정합니다.

controller.view.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height - kTabBarHeight);

이 모든 것이 잘 작동하며보기 컨트롤러 사이를 튕기는 것입니다. 그러나 모달 뷰 컨트롤러를 제시 한 다음 해산하면 현재보기 컨트롤러의보기가 전체 화면이되어 탭 막대를 덮습니다! 자가 화를 조정하지 않도록 자동화 된 마스크를 설정하려고 시도했지만 계속 진행되고 있습니다.

또한 뷰 컨트롤러보기를 탭 바 아래에 (탭 막대 아래) 추가하려고 시도했습니다.

[self.view insertSubview:controller.view atIndex:0];

그러나 내가 그렇게 할 때, 탭 막대는 모든 모달 뷰보다 볼 수 있습니다! 이상합니다. 내가 이해하지 못하는 것이 있다고 생각합니다. 누군가 내가 놓친 것을 설명 할 수 있다면 감사 할 것입니다!

감사,

마이크

도움이 되었습니까?

해결책 3

탭 컨트롤러 탭 막대의 상단에 하위 뷰를 삽입하여 탭 막대의 모양을 제어 할 수있는 더 나은 방법을 찾았습니다. 그것은 치료를 받았습니다!

다른 팁

설정해보십시오

controller.view.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height - kTabBarHeight); 

컨트롤러의 ViewWillAppear 메소드에서

이것을 시도하십시오. 탭 바 컨트롤러 내에서 동적보기 컨트롤러를 원한다고 생각합니다.

-(void)applicationDidFinishLaunching:(UIApplication *)application {

// Add the tab bar controller's current view as a subview of the window
tabBarController.delegate=self;
tabBarController=[[UITabBarController alloc] init];

mainDashBoard=[[DashBoard alloc] initWithNibName:@"DashBoard" bundle:nil];
mainSearchView=[[SearchView alloc] initWithNibName:@"SearchView" bundle:nil];
mainMoreView=[[MoreView alloc] initWithNibName:@"MoreView" bundle:nil];

UINavigationController *nvCtr0=[[[UINavigationController alloc] init] autorelease];
UINavigationController *nvCtr1=[[[UINavigationController alloc] initWithRootViewController:mainDashBoard] autorelease];
UINavigationController *nvCtr2=[[[UINavigationController alloc] initWithRootViewController:mainSearchView] autorelease];
UINavigationController *nvCtr3=[[[UINavigationController alloc] initWithRootViewController:mainMoreView] autorelease];
UINavigationController *nvCtr4=[[[UINavigationController alloc] init] autorelease];//[[[UINavigationController alloc] initWithRootViewController:nil] autorelease];

tabBarController.viewControllers=[NSArray arrayWithObjects:nvCtr0,nvCtr1,nvCtr2,nvCtr3,nvCtr4,nil];

nvCtr0.tabBarItem.enabled=NO;
nvCtr4.tabBarItem.enabled=NO;

[window tabBarController.view];
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top