2010-12-20 5 views
2


이것은 제 문제입니다.전체 화면 모드에서 Tabbar를 사용하여 UIView를 여는 방법은 무엇입니까?

  1. 나는 tabBar 응용 프로그램을 가지고 있습니다.
  2. 첫 번째 탭에는 테이블이 있습니다.
  3. 테이블을 클릭하면 모달 보기가 표시됩니다. 첫째 보기로 다시 모달보기에서 이동하십시오
  4. , 나는 열 때 TabBar의있는 동안에 모달 뷰를 클릭하면 문제는, 그것은 두 번째 열립니다 것을
    [self presentModalViewController:nw animated:YES]; 
    

사용 처음보기의 테이블은 모달보기가 여전히 열려 있기 때문에 작동하지 않습니다.

전체 화면에서 모달보기를 탭 막대를 덮는 방법입니까?
또는 다른보기에서 모달보기가 닫혀 있는지 확인하고 싶습니까?


편집 : 나는이 모든 코드와 시도 :

nw = [[NewsViewController alloc] initWithNibName:@"NewsViewController" bundle:nil]; 
nw.modalInPopover = YES; 
nw.wantsFullScreenLayout = YES; 
nw.hidesBottomBarWhenPushed = YES; 
nw.contentSizeForViewInPopover = CGSizeMake(320, 480); 
nw.modalPresentationStyle = UIModalPresentationFullScreen; 
nw.view.frame = [[UIScreen mainScreen] applicationFrame]; 
[nw.view setNeedsLayout]; 

아무것도하지만! 전체 화면으로 이동하지 않아 !!

아무쪼록 바랍니다.

덕분에,
알베르토

+0

모달로 어떤보기 /보기 컨트롤러를 선물 하시겠습니까? –

+0

@middaparka : 테이블보기를 클릭하면 플립 된 화면이되고 [self present .....]를 클릭하면 닫습니다. – elp

답변

0

알림을 통해 해결되었습니다.

탭이 바뀌면 알림을 보내고 모달 컨트롤러를 닫습니다.

- (BOOL)tabBarController:(UITabBarController *)tbController shouldSelectViewController:(UIViewController *)viewController { 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"DataComplete" object:nil]; 
    return YES; 
} 

내보기 클래스는 알림을 수신하고 컨트롤러를 닫습니다!

- (void)downloadDataComplete:(NSNotification *)notif { 
    NSLog(@"Received Notification"); 

    [self dismissModalViewControllerAnimated:YES]; 
} 

지금 그것은 또한 탭을 변경 모달보기을 다시 possibile입니다!
이것은 해결책이지만 작동합니다!

alberto.

+0

전체 화면을 보려면 인터페이스 빌더에서 uiviewcontroller 객체를 제거하십시오! – elp

1

당신이 제시하고있는 뷰가 전체 화면 인 경우,이 탭 표시 줄을 모호하게한다. 즉, UIWindow와 같은 크기가되도록 프로그래밍 방식으로 뷰의 크기를 조정해야 할 수도 있습니다.

[nw setFrame:[[UIScreen mainScreen] applicationFrame]]; 
[nw setNeedsLayout]; 

당신의 라인을 따라 뭔가를 할 수 있어야

는 ... ...이를 달성하기 위해. (죄송합니다. 지금은 Windows 상자에 있기 때문에이를 확인할 수 없습니다. 필요하면 누군가가 임의로 조정할 수 있기를 바랍니다.)

다음과 같은 방법으로 초기 모달보기를 닫아야합니다. 원래 클래스. (Apple View Controller Programming Guide for iOS의 "모달 뷰 컨트롤러 닫기"섹션 참조) 원래 클래스는 모달 뷰를 삭제합니다.

+0

죄송 합니다만,이 방법으로 전체 화면으로 nw을 표시 할 수는 없습니다 ... 같은. – elp

관련 문제