2010-01-30 4 views
5

Tôi đã kiểm tra các câu trả lời khác nhưng không tìm thấy bất cứ điều gì thực sự mô tả tình hình của tôi. Vì vậy, ở đây đi.màn hình hiển thị cũ thay đổi-xuống-sau-modal-view-controller vấn đề

Tôi có một ứng dụng dựa trên cửa sổ tạo và tải UIViewController từ xib. Nó có thanh trạng thái vô hiệu hóa, chiều cao của 480 và một UISegmentedControl với nguồn gốc y của 451. Nó hiển thị độc đáo ở dưới cùng của màn hình *

Trong viewDidLoad của UIViewController tôi tạo một UIView initWithFrame:CGRectMake(0.0, 0.0, 320.0, 431.0)]; (đó là 480 -. 29 pixel cho các UISegmentedControl và 20 cho thanh trạng thái.) Tôi thêm nó vào UIViewController với [self.view addSubview:gameBoard];. Sau đó, một số phần trò chơi của UIView được thêm vào dưới dạng phần phụ của bảng điều khiển UIView và mọi thứ được hiển thị như tôi nghĩ.

Khi một số trong các bản xem lại UIView được nhấn vào, trình đơn sẽ xuất hiện. Tôi đã tạo ra một UIViewController với các điều khiển cần thiết trên đó. Tôi sử dụng một phương pháp đại biểu để gọi từ subviews, người nhặt các sự kiện kích hoạt, đến UIViewController gốc - mà không

self.squadOrders = [[SquadOrders alloc] initWithNibName:@"SquadOrders" bundle:nil]; 
    squadOrders.viewControllerDelegate = self; 
    [self presentModalViewController:squadOrders animated:YES]; 

Và hiển thị hộp thoại modal như tôi nghĩ rằng nó nên, trượt lên từ mép dưới của màn hình, không bao gồm thanh trạng thái nhưng bao gồm các UISegmentedControl đề cập ở dưới cùng của UIViewController gốc. Nó bị miễn nhiệm bởi

[self dismissModalViewControllerAnimated:YES]; 

và đó là nơi sự cố bắt đầu. Điều khiển UISegmented được di chuyển xuống 20 pixel sao cho chỉ có 9 pixel của nó được hiển thị ở dưới cùng của màn hình. Có khoảng trắng 20 pixel ở trên cùng, nơi chế độ xem đã được di chuyển xuống.

* cho phép thanh trạng thái trên này hoặc bất kỳ xib nào khác không thay đổi hành vi được mô tả chút nào.

câu hỏi stackoverflow khác có liên quan là:

IPhone - After dismissing Modal View Controller - gap is left at top of page - nhưng các giải pháp đưa ra là không có một bộ điều khiển xem nạp như là một subview của bộ điều khiển xem có hiển thị các phương thức - nhưng tôi không, chỉ UIViews. Ngoài ra còn có những gợi ý của chỉ cần đặt lại khung thích hợp sau khi các phương thức biến mất nhưng nó cảm thấy như gian lận.

Contents of UIScrollView shifted after dismissing ModalViewController - Tôi đã chơi với độ cao của tất cả các chế độ xem và bộ điều khiển - chắc chắn chúng phù hợp, không hữu ích. Một lần nữa, khung có thể được đặt lại nhưng nó chỉ giải quyết các triệu chứng.

Có những người khác nhưng không có gì giải quyết vấn đề này cho đến nay.

+0

xem self.view.khung ngay lập tức trước khi phương thức được hiển thị, nó là 0,0,320,480. Khi phương thức được loại bỏ, nó sẽ trở thành 0,20,320,460. Hy vọng rằng sẽ giúp. –

+0

Tôi không thể tin rằng không có giải pháp. – ZaBlanc

Trả lời

0

Tôi vừa giải quyết vấn đề này với chế độ xem dịch chuyển xuống. Đó là do navigationBar.barStyle được đặt thành UIBarStyleBlackTranslucent.

0

Đây là một hack, nhưng có thể giúp ai đó. Tôi đã có rất nhiều vấn đề khoảng cách 20 pixel trong suốt ứng dụng của mình và tất cả chúng đều biến mất bằng cách sử dụng bộ điều khiển điều hướng làm bộ điều khiển chế độ xem gốc của tôi. Tôi không thực sự sử dụng nó như một bộ điều khiển nav ở tất cả (và tôi ẩn thanh điều hướng), vì vậy giải pháp này có thể hoạt động trong hầu hết các ứng dụng. Về cơ bản, tôi có một BaseView (320 x 480, không có thanh trạng thái) có bộ điều khiển nằm trong bộ điều khiển nav của tôi, và sau đó phần còn lại của ứng dụng của tôi được thêm dưới dạng subviews vào BaseView. Tất cả đều hoạt động tốt ngay bây giờ.