2012-07-08 20 views
7

Tôi có ứng dụng dựa trên thanh tab với 3 tab (chế độ xem). Làm thế nào tôi, hoặc trong đại biểu ứng dụng hoặc trong tab đầu tiên được tải, tôi sẽ tải toàn bộ nội dung của 2 chế độ xem khác trong nền?Lượt xem tải trước mục tiêu C iOS mục tiêu

Hiện tại tôi có một webView trong mỗi chế độ xem được đề cập. Một phần của vấn đề của tôi là họ được nạp trong viewDidLoad nhưng gây ra một chờ đợi với một màn hình trống

Cảm ơn

Trả lời

8

Câu trả lời không rõ ràng với tôi .. Vì vậy, tôi có 3 UIViewController (hoặc các lớp con của chúng) chứa trong UITabBarViewController, cách buộc chúng tải chế độ xem của chúng là gọi thuộc tính -view trên mỗi người trong số đó AppDelegate phong phú trước khi bạn thêm vào cá thể UITabbarViewController. Một cái gì đó như thế này:

UIViewController * myViewController = [[UIViewController alloc] initWithNibName:@"mynib" bundle:nil]; 
[myViewController view];//<--here you are forcing the view to be loaded before it will be called from the tabbatviewcontroller 

Đây là cách để tránh (không hề) hành vi bạn đang trải qua ... khái niệm tải trong nền phức tạp hơn nhiều.

7

Cố gắng:

viewController.view.hidden = NO; 

cho bất kỳ viewController bạn muốn pre-load và nó có beeb được cấp phát và khởi tạo. Đó là, sau khi phân bổ và initWithNibName: ... đã được thực hiện.

+0

Nếu tôi nhớ chính xác, bạn thực sự có thể sử dụng bất kỳ câu lệnh nào với 'viewController.view' và nhận được cùng một hiệu ứng. Tôi nghĩ rằng thuộc tính 'view' có thể được thực hiện với tải chậm, vì vậy ngay sau khi ai đó cố gắng tham chiếu nó, nó sẽ tải. – Nate

+4

Nhưng điều này không đòi hỏi một "trở lại" vì vậy không có cảnh báo hiển thị! :) –

+0

Điều này thậm chí còn quan trọng hơn trong Xcode 6 (ít nhất là khi sử dụng Swift) báo cáo lỗi khi không sử dụng giá trị của viewController.view. –

4

Tôi thường sử dụng một cái gì đó như thế này:

if (vc.view == nil)  // force load of view 
{ 
    NSLog(@"%s ***** ERROR: view == nil: %@", __PRETTY_FUNCTION__, vc); 
} 

LƯU Ý: Sau khi gọi vc.view, quan điểm nên bao giờ được con số không - đó là một lỗi phân bổ khá nghiêm trọng.