1

나는 메인 스크린이되고 싶으면 아이폰 앱을 디자인하고있다. 그런 다음 사용자가이 화면의 오른쪽 하단에있는 정보 단추를 누르고 옵션 및 다양한 형태의 데이터 표시를 처리 할 수있는 완전히 다른 인터페이스로 들어가기를 바랍니다.모달 UITabBarController 디자인

Apple의 설명서에서 View Controller에 대한 연구를 한 후 정보 버튼을 누르면 모달보기를 사용하고 싶습니다. 내 문제는, 가장 적합한 인터페이스는 UITabBarController입니다. 주 화면을 나타내는 UITabBarController에 탭을두고 싶습니다. 터치하면 UITabBarController를 닫으라는 기본 화면이 표시됩니다.

사람들이 UITabBarController의 탭에 대한 모달보기 해지를 트리거하는 버튼이있는 사용자 지정보기 컨트롤러를 추가하는 웹에서 꽤 많은 예제를 보았습니다. 그러나 나는 추가보기를 표시하지 않으려합니다. 사용자가 주 화면 탭을 터치하자마자 모달보기를 닫으려고합니다. 필자는 이미 UITabBarController에 메인 화면을 배치 한 접근 방식을 실험했으며 만족스럽지 않았습니다. 그래서 희귀 모달 UITabBarController 디자인에 익숙하고 도움이 될만한 정보를 얻으려고합니다.

이 모든 것이 가능합니까? 그렇지 않다면 어떻게 다른 방식으로 동일한 인터페이스 흐름을 수행 할 수 있습니까?

아직 시도하지는 않았지만 빈 UIViewController를 사용하여 UITabBarController를 설정하여 기본 화면을 나타내고 UITabBarControllerDelegate를 호출하여 빈 화면이 표시되기 전에 주 화면에 메시지를 보내도록 설정할 수있는 방법이 있습니다. 나타 납니까?

답변

2

확인을 다시 탐색과 수직 목록 (예를 들어, 기본 응용 프로그램)에서 섹션을 보여주는 고려해야한다

, 나는이 문제를 알아 냈어. 나는 이것이 아마도 가장 정통적인 UI 디자인이 아니라는 것을 인정하지만, 직관적 인 의미로 생각합니다 ... 누군가가 아마 이것이 나를 위반하는 Apple UI 지침에 연결해야합니다.

다음 코드는 사용자가 모달 UITabBarController의 프레젠테이션에 애니메이션을 적용 할 정보 버튼을 누를 수 있도록합니다. 이 예제에서 UITabBarController에는 탭이 하나만 있고 탭 또는 아이콘으로 제목 표시 줄이 설정되지 않았습니다. 모달 뷰에서 사용자는 막대의 첫 번째 탭을 클릭 할 수 있으며 모달 뷰는 닫힙니다. (이것은 논리적으로 첫 번째 이외의 인덱스에서 시작하는 UITabBarController가 말하고 싶은거야 것을 의미한다.)

- (IBAction)infoButtonPressed 
{ 
    UIViewController *mainScreen = [[UIViewController alloc] init]; 
    NSArray *viewControllers = [[NSArray alloc] initWithObjects:mainScreen, nil]; 
    UITabBarController *tabBarController = [[UITabBarController alloc] init]; 
    tabBarController.viewControllers = viewControllers; 
    //This means that "self" needs to implement the UITabBarControllerDelegate protocol 
    tabBarController.delegate = self; 
    [self presentModalViewController:tabBarController animated:YES]; 

    [mainScreen release]; 
    [viewControllers release]; 
    [tabBarController release]; 
} 

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    if (viewController == [tabBarController.viewControllers objectAtIndex:0]) { 
      [self dismissModalViewControllerAnimated:YES]; 
    } 
} 

I 나는 지금, 그러나, 점점 경고에 대한 두 단계 회전 애니메이션 :

Using two-stage rotation animation. To use the smoother single-stage animation, this application must remove two-stage method implementations. 
Using two-stage rotation animation is not supported when rotating more than one view controller or view controllers not the window delegate 

예비 조사에 따르면 메인 화면보기에서 배경을 표시하기 위해 UIImageViewController을 사용했기 때문에 예비 화면에서 UIColor initWithPatternImage으로 변경했습니다. 경고를 없애는 방법을 아는 사람이 있습니까?

0

혼란 스럽거나 (적어도 비정상적인) 사용자 경험처럼 들립니다. 탭은 앱의 기본 탐색 수준이 될 것으로 예상됩니다. 당신은 분할 버튼 또는

+0

결국, 당신 말이 맞습니다. 다른 디자인을 추구하는 것이 더 합리적 일지 모르지만, 지금은 이것이 어떻게 나타나는지보고 싶습니다. – Chiubaka