創建這些macros
您項目的<projectname>-Prefix.pch
文件,以便他們將全球工作:
#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
然後在每一個viewController
的viewDidLoad
方法把這個[super viewDidLoad]
後,這是使用這個問題:
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
{
[self setEdgesForExtendedLayout:UIRectEdgeNone];
}
是的,它對我來說工作得很好。但我的應用程序有Tabbacontroller alos。其他的viewcontroller工作正常。在Tabbar視圖控制器中發佈。假設我有5個選項卡。 1.當我點擊選項卡(列表屏幕打開)它工作正常,當我點擊列表細節打開罰款。直到它的工作正常2.當我點擊標籤2(另一個列表)打開。那個時候當我點擊tab1比細節屏幕主視圖框架減少到64px。我試圖強行增加,但不工作..在這種情況下我能做些什麼? – Hitarth
而不是檢查特定版本,最好檢查選擇器的存在:'if([selfrespondsToSelector:@selector(setEdgesForExtendedLayout :) :))' – DarkDust