2013-03-31 20 views
6

Tôi có một ứng dụng điều khiển thanh tab mà tôi đang cố gắng tương thích với iOS 6 và iOS 5. Đối với iOS 6, tôi sử dụng bố cục tự động. Nhưng khi cố gắng chạy trên iOS 5, tôi gặp lỗi do không nhận ra NSLayoutConstraints.Làm cách nào để tải nhiều tệp bảng phân cảnh tùy thuộc vào phiên bản iOS? (5 và 6)

Từ những gì tôi có thể biết, tôi bắt buộc phải sử dụng bảng phân cảnh khác mà không bật bố cục tự động. Tôi đã sao chép bảng phân cảnh của mình vào bảng phân cảnh mới nhưng không biết cách đặt bảng phân cảnh để sử dụng trong ủy nhiệm ứng dụng.

Làm cách nào để làm điều này?

+1

Có đáng giá? Duy trì 2 bảng phân cảnh khác nhau có thể là một nỗi đau. Bạn không thể thả iOS 5 hoặc bố cục tự động? –

+0

Tắt hoàn toàn bố cục tự động sẽ khiến cho các vấn đề về lượt xem bị lệch. Nhưng cuối cùng đã làm nó theo cách này cho cả hai phiên bản kể từ khi tôi sẽ phải đối phó với nó bằng cách sử dụng một storyboard 2 anyways. – JimmyJammed

Trả lời

10

Trong đại biểu ứng dụng của bạn, bạn nên tìm mã như thế này:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard" bundle:nil]; 
self.window.rootViewController = [storyboard instantiateInitialViewController]; 
[self.window makeKeyAndVisible]; 

Đây là nơi bạn có thể thêm một số mã để lựa chọn giữa nhiều storyboards rằng bạn có depending on the version of iOS:

UIStoryboard *storyboard; 
NSString *currSysVer = [[UIDevice currentDevice] systemVersion]; 
if (...) { 
    storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard-v5" bundle:nil]; 
} else { 
    storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard-v6" bundle:nil]; 
} 
self.window.rootViewController = [storyboard instantiateInitialViewController]; 
[self.window makeKeyAndVisible]; 
+2

Hoạt động. Nhưng kết thúc bằng cách sử dụng một bảng phân cảnh và vô hiệu hóa bố cục tự động và xử lý tất cả các thiết lập lại của thanh chống và lò xo. Câu trả lời là đúng cho câu hỏi mặc dù. Cảm ơn! – JimmyJammed

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