2012-01-27 29 views
9

Tôi vừa hoàn thành ứng dụng iPhone của mình và tôi muốn làm cho nó trở nên phổ biến. Tôi đã đọc một vài bài viết nhưng chúng hơi cũ (2010 hoặc lâu hơn).Cách chuyển một ứng dụng iPhone sang iPad (Storyboard)

gì tôi nhận:

  • ứng dụng iPhone đơn giản, thời gian gần đây đã tạo ra (iOS 5 - Storyboard), với ba màn hình.
  • Ứng dụng của tôi đại diện cho một bảng có ba thẻ mà bạn có thể lật chạm vào chúng. Người dùng có thể nhập (trên màn hình thứ hai) văn bản sẽ được hiển thị trên thẻ.
  • Khi tôi tạo dự án, tôi đã chọn "Phổ" để tôi có hai Bảng phân cảnh. Sau đó không có gì khác tôi đã làm với iPad (ngoại trừ một dòng trên "hỗ trợ liên lạc của tôi" email tùy chọn mà tôi sử dụng UIModalPresentationPageSheet).

Những gì tôi muốn thực hiện:

  • Cùng ứng dụng trên iPad: Ứng dụng của tôi rất đơn giản tôi không có bất kỳ sử dụng cho các khung hoặc các chi tiết. Tôi chỉ muốn cùng một đối tượng và bố trí nhưng với đồ họa lớn hơn và tốt hơn (bảng, thẻ, vv).

Tôi thích điều đó bởi vì nó sẽ tạo ra một chuyển đổi cấp độ giới thiệu tuyệt vời.

Tôi không biết bắt đầu từ đâu. Khi tôi chạy trình giả lập iPad, màn hình trắng xuất hiện và chính là nó.

+0

Erm ... chỉnh sửa bảng phân cảnh iPad sẽ là một nơi tốt để bắt đầu. – esqew

+0

Vì vậy, đối với phiên bản iPad của bạn, bạn cần phải làm lại toàn bộ bảng phân cảnh và sử dụng lại mã? Thêm một lần nữa các nút, nhãn và mọi phần tử giao diện người dùng và kết nối chúng với các phương pháp hiện tại của bạn? –

+0

Yup, nền tảng iPhone và iPad rất, rất giả lập. Ngoài một vài ngoại lệ, bạn sẽ có thể làm điều này không có vấn đề gì. – esqew

Trả lời

12

Điều này được thực hiện.

Như với hầu hết mọi thứ, điều này khá dễ dàng khi bạn biết phải làm gì.

Tôi muốn nói rằng đối với những trường hợp như tôi, nơi mà các giao diện người dùng không thay đổi trong hơn kích thước hoặc (x, y) phối quá trình này có thể được tóm tắt như thế này:

  1. Replicate mỗi UI yếu tố trên Bảng phân cảnh iPad (sao chép và dán sẽ làm) và điều chỉnh vị trí và kích thước như bạn thấy phù hợp
  2. Nối lại tất cả mọi thứ. Mỗi nút, segue (bạn sẽ phải thêm tên segue nữa), v.v.
  3. Xác minh trong mã của bạn mọi nơi mà giao diện người dùng của bạn bị ảnh hưởng (ví dụ x, y tọa độ), xác định xem ứng dụng có đang chạy trên iPhone hoặc iPad và chia mã của bạn cho phù hợp
  4. Nếu bạn có bất kỳ bản địa hóa nào trên ứng dụng, bạn sẽ phải cập nhật các phần tử giao diện người dùng mới trên Bảng phân cảnh iPad
  5. Chọn mục tiêu để thử nghiệm trên trình mô phỏng và dùng thử

Để xác định thiết bị bạn đang chạy ứng dụng nào, bạn có thể sử dụng như sau:

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    //I'm running on the iPad 
} else { 
    //I'm running on the iPhone 
} 

Và đó là nó. Một lần nữa, trong một trường hợp đơn giản như của tôi việc sử dụng lại mã là tuyệt đối (100%), mã mới bạn sẽ phải thêm là tối thiểu (về cơ bản các câu lệnh IF nếu cần), và các phần tử UI trùng lặp dễ dàng như sao chép và dán .

Tôi hy vọng điều này hữu ích cho người khác và nếu bạn có đề xuất cải thiện điều này, chúng sẽ được hoan nghênh hơn.

+2

Chắc chắn đây không phải là cách tiếp cận tốt nhất cho vấn đề này? Tiềm năng để giới thiệu lỗi/bỏ lỡ cập nhật các yếu tố giao diện người dùng, những điều sai trái vv chỉ có vẻ lớn. :( – jmc

+0

Xem câu trả lời này http://stackoverflow.com/questions/8465769/convert-storyboard-from-iphone-to-ipad (đó là một trong những nhận xét về câu hỏi này nhưng đến nay vẫn bị ẩn) – jmc

3

Nếu bạn chỉ muốn sử dụng lại bảng phân cảnh trên iPhone của mình, chỉ cần chuyển đến cài đặt dự án của bạn. Trong tab TARGETS Thông tin, có tên cơ sở tệp bảng phân cảnh chính của hàng 'và' tên cơ sở tệp bảng phân cảnh chính (iPad) '. Chỉ cần chỉnh sửa iPad để có cùng giá trị với nhau. Trong trường hợp của tôi, tôi phải chỉnh sửa nó thành 'tên cơ sở tệp bảng phân cảnh chính (iPad)' có giá trị 'MainStoryboard_iPhone'.

+0

Đặt thiết bị thành phổ quát và điều này hoạt động hoàn hảo (nếu autolayout của bạn là đúng) – Toby

4

Mở tệp Storyboard trong công cụ tìm, sao chép iPhone-Storyboard và đổi tên nó Main-iPad.storyboard

Bên trong Xcode, nhấp chuột phải vào các kịch bản -> “mở như” -> “Source Code”

Tìm kiếm targetRuntime = "iOS.CocoaTouch" và làm cho nó targetRuntime = "iOS.CocoaTouch.iPad"

Bây giờ lưu tất cả mọi thứ và mở lại Xcode -> iPad-Storyboard chứa giống như iPhone-file nhưng everyting thể được sắp xếp lại, bạn phải tự sắp xếp nó.

Cuối cùng để có được những định dạng iPad cũng thay đổi mã trong MainStoryboard_iPad.storyboard từ: đến

Sau đó đi đến tập tin "StroryBoardEx-Info.plist" của bạn, tìm kiếm cho "tên chính tập tin nib cơ sở (iPad) "và làm cho nó" Main-iPad.storyboard "

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