2010-05-09 29 views
12

Tôi không thể tìm thấy câu trả lời hay ở đâu cả. Tôi đang sử dụng một UINavigationController cho ứng dụng iPhone của tôi, với tất cả mọi thứ được tạo ra theo lập trình, không có gì trong Interface Builder. Tôi đang cố gắng chuyển ứng dụng của mình sang iPad, sử dụng UISplitViewController và UINavigationController hiện tại của tôi, nhưng tôi không chắc chắn nơi tôi nên có logic của chương trình tách bộ điều khiển chế độ xem cho iPhone hoặc iPad.Làm cách nào để tạo một ứng dụng iPhone/iPad phổ dụng sử dụng chương trình UISplitViewController và UINavigationController?

Tôi có thiết lập tệp chính của mình để sử dụng ứng cử viên khác hoặc tôi có sử dụng cùng một đại biểu ứng dụng và có giao diện người dùng có điều kiện được thiết lập trong đó không?

Bên cạnh đó, bất cứ khi nào tôi cố gắng biên dịch ứng dụng của mình trên trình mô phỏng, nó không nhận ra UISplitViewController hoặc thậm chí điều kiện mà tôi kiểm tra xem lớp đó có tồn tại hay không.

Xin vui lòng ai đó đưa tôi đi đúng hướng, nhớ rằng tôi không sử dụng bất kỳ xib nào?

Trả lời

20

Nếu bạn muốn xem ví dụ về giao diện iPhone/iPad hoàn toàn có lập trình sử dụng chế độ xem chia tách, bạn có thể tải xuống mã nguồn của ứng dụng của tôi Molecules.

Trong ứng dụng đó, tôi sử dụng một ứng dụng đại biểu, nhưng tôi thiết lập giao diện khác nhau tùy thuộc vào thành ngữ giao diện người dùng hiện diện (iPad hoặc iPhone). Đối với iPhone, tôi khởi tạo trình điều khiển chế độ xem gốc, quản lý giao diện thích hợp cho thiết bị đó. Đối với iPad, trước tiên tôi tạo UISplitViewController và đính kèm nó vào cửa sổ gốc, sau đó tạo bộ điều khiển xem gốc cụ thể cho iPad và đặt nó làm chế độ xem chi tiết của bộ điều khiển chế độ xem chia tách (với bộ điều khiển điều hướng mà tôi sử dụng để chọn mục bộ điều khiển bên trái cho chế độ xem chia tách).

Một lần nữa, tôi khuyên bạn nên xem dự án ứng dụng đó để xem cách tôi thiết lập chương trình này theo cách lập trình. Mã có sẵn theo giấy phép BSD, vì vậy bạn có thể sao chép và dán mã này vào ứng dụng của riêng mình nếu bạn muốn.

Theo như lỗi biên dịch bạn nhận được, bạn sẽ cần phải di chuyển mục tiêu ứng dụng của mình thành ứng dụng toàn cầu bằng cách sử dụng tùy chọn menu "Nâng cấp mục tiêu hiện tại cho iPad". Khi đã hoàn tất, hãy đặt SDK xây dựng của bạn thành 3.2. Chuyển đến cài đặt xây dựng của ứng dụng và đặt Target Deployment của nó thành OS đầu tiên bạn muốn hỗ trợ với ứng dụng của bạn (với 3.0 là trở lại xa nhất bạn có thể đi).

Cuối cùng, bạn sẽ cần liên kết yếu UIKit. Để biết cách thực hiện điều đó, hãy xem câu trả lời của tôi here. Việc liên kết yếu các khung công tác không còn cần thiết nếu bạn đang xây dựng sử dụng SDK iOS 4.2 trở lên. Chỉ cần kiểm tra sự hiện diện của các lớp thích hợp trong thời gian chạy bằng cách xem phương thức +class của chúng có trả về nil hay không.

+0

Cảm ơn bạn rất nhiều, mã nguồn phân tử thực sự đã giúp tôi hiểu toàn bộ sự việc. Tôi đang sử dụng chế độ xem bên của chế độ xem chia cho chế độ xem bảng chia sẻ chế độ xem bảng hiện tại của tôi, ứng dụng iphone và chế độ xem chi tiết của chế độ xem chia nhỏ hiện bao gồm hai chế độ xem khác và được sử dụng để có thể truy cập bằng điều hướng. btw, tôi thích nhìn thấy pi lập phương trên ipad. –

+0

Tôi cũng đã sử dụng [[UIApplication sharedApplication] .delegate performSelector: @selector (PushMyViewController)]; để đẩy ViewController ở chế độ xem bên phải của tôi .. có tốt hay xấu không? Tôi lo lắng điều gì đó khủng khiếp có thể xảy ra sau đó lol –

+0

Cảm ơn bạn đã cung cấp nguồn phân tử! Khi tôi xây dựng với Active SDK = Simulator 3.2, tôi có thể chạy trình mô phỏng iPad. Nhưng làm thế nào có thể thử nghiệm một ứng dụng này với giả lập trong chế độ iPhone? Khi tôi thử đặt SDK hoạt động = Mô phỏng 3.1.3, tôi nhận được một số lỗi biên dịch (ví dụ: không thể tìm thấy khai báo giao thức UISplitViewControllerDelegate).Tôi đang làm gì sai? Cảm ơn! –

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