2010-08-18 24 views

Trả lời

1

Bạn có thể bạn một cái gì đó như thế này, (tôi không có xcode tiện dụng do đó, mã này có thể không hoàn toàn chính xác)

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
if((interfaceOrientation == UIInterfaceOrientationLandscapeRight) || (interfaceOrientation == UIInterfaceOrientationLandscapeLeft)){ 
WhatYourNewViewClassISCAlled* newView = [[WhatYourNewViewClassISCAlled alloc] initWithNibName:@"NIBNAME" bundle:[NSBundle mainBundle]]; 
[self.navigationController pushViewController:newView animated:YES]; 
} 
+0

Nhưng sau đó xem chân dung theo định hướng vẫn sẽ được phát trên stack, phải không? Vì vậy, nút quay lại sẽ trỏ đến điều sai. –

+0

Điểm tốt, bạn có thể ẩn thanh điều hướng khi các chế độ xem được xoay hoặc có chế độ xem đã được tạo và mờ dần và mờ dần chế độ xem khác khi xoay vòng xuất hiện. – octermircty

1

Đây là cách chính xác, tôi tin. Tôi đang sử dụng nó trong các ứng dụng của tôi và nó hoạt động hoàn hảo

  1. gây nên trên SẼ xoay, không NÊN xoay (chờ đợi cho đến khi anim xoay là về để bắt đầu)
  2. sử dụng quy ước đặt tên của Apple cho cảnh quan/file chân dung (Default.png là Default-landscape.png nếu bạn muốn Apple để tự động tải một phiên bản nằm ngang)
  3. load lại các NIB mới
  4. mà resets các self.view - điều này sẽ tự động cập nhật màn hình
  5. và sau đó nó gọi viewDidLoad (Apple sẽ KHÔNG gọi nó cho bạn, nếu bạn nạp lại thủ công một NIB)

(NB stackoverflow.com đòi hỏi câu này ở đây - đó là một lỗi trong định dạng mã)

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
{ 
    if(UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) 
    { 
     [[NSBundle mainBundle] loadNibNamed:[NSString stringWithFormat:@"%@-landscape", NSStringFromClass([self class])] owner:self options:nil]; 

     [self viewDidLoad]; 
    } 
    else 
    { 
     [[NSBundle mainBundle] loadNibNamed:[NSString stringWithFormat:@"%@", NSStringFromClass([self class])] owner:self options:nil]; 

     [self viewDidLoad]; 
    } 
} 
Các vấn đề liên quan