2012-06-09 47 views
1

我已經創建了iPhone應用程序。我沒有我的應用程序中的表格視圖,圖像視圖,地圖視圖。所有通過網絡服務傳來的數據。我通過編碼爲圖像和其他視圖提供了一些靜態大小。現在,我需要iPad上的相同應用程序。所以我必須更改Ipad視圖尺寸的編碼。我需要在同一個.m文件中爲iPhone和iPad做不同的編碼。任何人都可以告訴我該怎麼做!如何在通用應用程序中的.m文件中爲iphone和ipad編寫不同的代碼?

+0

在這裏看到我的答案:http://stackoverflow.com/questions/7217277/what-is-the-code-to-detect-whether-ios-app-running-in-iphone-iphone-retina-disp/ 7223662#7223662 – Luke

+0

http://devimages.apple.com/iphone/resources/introductiontouniversalapps.pdf – dasblinkenlight

回答

4

直到我明白你的問題,我覺得這是什麼ü需要:

if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
{ 
    // place the iphone code 
} 
else 
{   
    // place the ipad code 
} 

,你可以參考這篇文章:http://iphonedevelopment.blogspot.in/2010/04/converting-iphone-apps-to-universal.html

+2

更好的是使用宏'if(UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPhone_ {...}' –

+0

謝謝@Suhaiyl ...對於建議...! – roamingsoul

3

正如你可以看到,當你選擇了一個通用的應用程序從你開始一個新項目開始 - 在通用應用程序Appdelegate.m文件中,蘋果提供了這個代碼。

看到這一點 -

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
// Override point for customization after application launch. 
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil]; 
} else { 
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil]; 
} 
self.window.rootViewController = self.viewController; 
[self.window makeKeyAndVisible]; 
return YES; 
} 

用同樣的方法,你可以分辨出iPad和iPhone。 謝謝!

+1

目前沒有必要指定兩個不同的筆尖名稱,ipad的筆尖文件應該在名稱(ViewController和ViewController〜ipad)之後有「〜ipad」的約定,其餘IOS需要照顧。這是易於維護\ M/ – Suhaiyl

+1

@Suhaiyl - 。看我的最後一行,請我只是給的提示,我想我的代碼描述用戶roamingsoul想要什麼 – TheTiger

+0

。 Thanx @VakulSaini ...它的工作...! – roamingsoul

相關問題