2012年2月16日 星期四

[objective C] iPhone 轉 Universal

最近要練習將以前寫的iPhone 程式轉換為Universal 型態,Universal其實就是指可以同時在iPhone 和 iPad裝置上安裝使用,可以針對不同裝置的顯現樣板,在同一個專案裡同時被實現。如果你的APP要比較有遠景的話,這是必須的。

這時後就很慶幸開發方式是標準的MVC架構,我可以設定iPhone.xib與iPad.xib共用同一個class,這樣內部的程式就不需要全部改寫。

一、設定專案型態為Universal:
       專案的Targets/Summary/Devices ,改為Universal。

二、新增iPad.xib 且要共同原來的class:
        1.新增new file,選擇"UIViewController subclass",請注意要勾選 「Targeted for iPad」,取名可以是「原名-iPad」比較好分辨。
        2.刪除 *-iPad.h 和 *-iPad.m 。
        3.點選 *-iPad.xib,再選取它的 File's Owner,將Custom Class 由「原名-iPad」改為[原名],這個是很重要的步驟,因為 *-iPad.xib 就會和 *-iPhone.xib 共用同一個Class。

三、從 .m 檔用程式判斷目前的裝置,再決定要載入 *-iPad.xib 或 *-iPhone.xib 以顯示不同的畫面。

NewsViewController *plvc = nil;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone
        plvc = [[NewsViewController alloc] initWithNibName:@"NewsViewController" bundle:nil];
    else
        plvc = [[NewsViewController alloc] initWithNibName:@"NewsViewController-iPad" bundle:nil];


接下來也是練功的部份,我也要加油!

YES! 又多學到一手了~









    沒有留言:

    張貼留言