2012-04-27 2 views
0

이것은 내가 본 iOS 개발에서 가장 이상한 문제입니다. 나는 상대적으로 iOS 개발에 익숙하지 않기 때문에 무언가가 분명한 경우 또는 제 용어가 완전히 정확하지 않은 경우 사과드립니다. 설명이 필요하면 의견에 대해 알려주십시오. 이에 따라 제 질문을 수정하겠습니다.Three20의 iOS 방향 문제가 매우 이상합니다.

그게 함께 할 수있는 뭔가가있을 그래서 내가, Three20을 사용하고있어 문제

. 그러나 나는 기본적으로 다른 뷰 (아래 그림 참조)와 연결되는 일련의 이미지 인 "홈 뷰"를 가지고 있습니다. 우리가 세로보기에서 시작하면 모든 것이 잘됩니다.

enter image description here

YAY :

enter image description here

다음보기는 아래 테이블보기이다! 나는 회전 할 수 있고 모두 세계와 맞습니다. BUT 만약 내가 저택보기로 돌아가서 경관으로 돌아 가면이 표식보기로 가면 세상이 무너집니다.

enter image description here

이제 내 테이블의 오른쪽에 추가 임의의 공간이 있다고 볼 수 있습니다. 나는 그것이 어디서 어떻게 발생했는지 모른다. 여기 내 Controller.m 파일입니다 :

#import "FriendTabsController.h" 
#import "MyAppApp.h" 
#import "JohnDoeManager.h" 

@implementation FriendTabsController 

@synthesize innerView, segmentedControl, innerController, friendsController, friendRequestsController; 

- (void)addBottomGutter:(UIViewController*)controller { 
    if ([controller isKindOfClass:[TTTableViewController class]]) { 
    TTTableViewController* tableViewController = (TTTableViewController*)controller; 
    tableViewController.tableView.scrollIndicatorInsets = UIEdgeInsetsMake(0,0,50+44,0); 
    tableViewController.tableView.contentInset = UIEdgeInsetsMake(0,0,50+44,0); 
    } 
} 

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {  
    return YES; 
} 

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.title = @"Friends"; 
    self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque; 
    self.navigationController.navigationBar.tintColor = nil; 


    friendsController = [[FriendsController alloc] init]; 
    friendRequestsController = [[FriendsController alloc] init]; 
    ((FriendsController*)friendRequestsController).friendRequests = YES; 

    [self addBottomGutter:friendsController]; 
    [self addBottomGutter:friendRequestsController]; 

    innerController = friendsController; 
    [innerView addSubview:innerController.view]; 
    [innerController viewDidLoad]; 

    UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; 
    [self loadBannerAd:(orientation)]; 

} 
-(void) loadBannerAd:(UIInterfaceOrientation)orientation{ 

    MainLayer *mi = [MainLayer getInstance]; 
    if (mi.useJohnDoeAds) { 
    [[JohnDoeManager sharedInstance] setCurrentViewController:self]; 
    [mi.JohnDoeBanner.view removeFromSuperview]; 

     if(orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown) { 
      // This is a portait ad 
      if ([[MyAppUtils getCurrentDevice] isEqualToString:@"iphone"]) { 
       [mi.JohnDoeBanner setFrame:CGRectMake(0, 410-44, 320, 50)]; 
      }else{ 
       [mi.JohnDoeBanner setFrame:CGRectMake(0, 1024-44-90-20, 768, 90)]; 
      }     
     } else { 
      // Landscape 
      if ([[MyAppUtils getCurrentDevice] isEqualToString:@"iphone"]) { 
       [mi.JohnDoeBanner setFrame:CGRectMake(0, 320-44-58, 410, 50)]; 
      }else{ 
       [mi.JohnDoeBanner setFrame:CGRectMake((1024-768)/2, 768-44-90-20, 768, 90)]; 
      }    
     } 

     [self.view addSubview:mi.JohnDoeBanner.view]; 
      [mi.JohnDoeBanner rollOver];   
    } 
} 

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 
    [self loadBannerAd:(toInterfaceOrientation)]; 
} 


- (IBAction)didChangeSegment:(UISegmentedControl *)control { 
    if (innerController) { 
    [innerController viewWillDisappear:NO]; 
    [innerController.view removeFromSuperview]; 
    [innerController viewDidDisappear:NO]; 
    } 

    switch (control.selectedSegmentIndex) { 
    case 0: 
     innerController = friendsController; 
     self.title = @"Friends"; 

     break; 
    case 1: 
     innerController = friendRequestsController; 
     self.title = @"Requests"; 

     break; 
    } 
    [innerController viewWillAppear:NO]; 
    [innerView addSubview:innerController.view]; 
    [innerController viewDidAppear:NO]; 
} 

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [innerController viewWillAppear:animated]; 
    self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque; 
    self.navigationController.navigationBar.tintColor = nil; 
} 

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    [innerController viewDidAppear:animated]; 
} 

- (void)viewWillDisappear:(BOOL)animated { 
    [innerController viewWillDisappear:animated]; 
    [super viewWillDisappear:animated]; 
} 

- (void)viewDidDisappear:(BOOL)animated { 
    [innerController viewDidDisappear:animated]; 
    [super viewDidDisappear:animated]; 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
} 

- (void)viewDidUnload { 
    [friendsController release], friendsController = nil; 
    [friendRequestsController release], friendRequestsController = nil; 
    [super viewDidUnload]; 
} 

- (void)dealloc { 
    [super dealloc]; 
} 


@end 

그래서 누군가에 무슨 일이 일어나고 있는지 말해 주실 래요? 도움!

답변

2

wantFullScreenLayout 속성을 YES로 설정해야합니다. 당신의 초기화 방법에

가 문제를 해결하는 것입니다

self.wantsFullScreenLayout = YES; 

을 설정합니다.

관련 문제