2012-06-21 33 views
12

Tôi gặp sự cố rất lạ ở đây. Tôi đang sử dụng một bộ điều khiển xem phương thức hiện tại để hiển thị của tôi MFMailComposer ViewController trên đầu trang của một ViewController được đặt với trong một thanh điều hướng.dismissModalViewController Ẩn chế độ xem gốc phía sau thanh trạng thái

[self presentModalViewController:emailviewController animated:YES];

để che giấu, tôi sử dụng ...

-(void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 
{ 

    [self dismissModalViewControllerAnimated:YES]; 
} 

Tất cả mọi thứ hoạt động tốt nhưng khi tôi bỏ MailComposer tôi điều khiển xem gốc ẩn đằng sau thanh trạng thái.

Tôi đã cố gắng sửa đổi tỷ lệ xem hình ảnh bằng 10 bằng phương pháp setFrame nhưng Nó không hoạt động. (điều này là mệt mỏi trước và sau khi bộ điều khiển chế độ xem được trình bày và loại bỏ)

Tôi đã cố gắng ẩn thanh trạng thái tạm thời nhưng không hoạt động.

Tôi đã thử self.navigationcontroller presentmodalviewcontrolle nhưng điều đó không làm việc quá ...

Bất kỳ ý tưởng hoặc đề xuất sẽ được đánh giá cao

After dismissmodalviewcontroller called

chỉnh sửa: Hầu hết các người cho tôi đề xuất sửa đổi bù trừ theo cách thủ công. Điều đó không hiệu quả. Bởi vì nếu tôi làm điều đó trong viewDidLoad/viewWillapper của tôi của phương thức viewcontroller gốc thì nó thay đổi view của tôi trước bộ điều khiển xem phương thức hiện tại trong khi sau khi tôi tải bộ điều khiển dạng phương thức Nó trở nên bình thường.

  • (void) viewDidAppear: (BOOL) hoạt hình { CGRect frame = self.navigationController.view.frame; frame.origin.y = 20; self.navigationController.view.frame = frame; }

Changing offset results in this

+0

Chế độ xem ban đầu của bạn có kiểm soát không r có thanh trạng thái được đặt thành ẩn hay không? – Ladislav

+0

nope .. Tôi chưa chạm vào thanh trạng thái nào –

+0

Vì vậy, không có thay đổi thanh trạng thái trong bộ điều khiển chế độ xem cũng như trong bộ điều khiển chế độ xem gốc? – Ladislav

Trả lời

3

Hãy thử đặt này trong viewDidAppear:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault]; 

Trường hợp xấu nhất, nếu nó luôn xảy ra chỉ sau khi điều khiển xem phương thức được miễn nhiệm, khai báo một boolean cho afterFirstLaunch trong .h và đặt điều này trong viewDidAppear:

if(afterFirstLaunch){ 
     CGRect frame = self.navigationController.view.frame; 
     frame.origin.y = 20; 
     self.navigationController.view.frame = frame; 
} 
else { 
     afterFirstLaunch = true; 
} 
+0

Nếu điều đó không hiệu quả, việc đăng mã có thể hữu ích. Cả hai chế độ xem đều được thực hiện bằng cách sử dụng Trình tạo giao diện? Làm thế nào bạn trình bày bộ điều khiển xem phương thức? – WolfLink

+0

có cùng một vấn đề nhưng nó thực sự không làm việc tôi –

+0

Dường như với tôi rằng chuyển khung xem sau khi xem tất cả đã sẵn sàng xuất hiện sẽ trông rất khó chịu. Chế độ xem phải được đặt đúng vị trí trước khi nó xuất hiện. – Darren

Các vấn đề liên quan