storyboard開發,根據系統版本選擇不同的storyboard加載

項目遇到版本兼容問題,爲了不影響已經測試穩定的版本,想針對有些系統版本單獨給一套UI。

給下思路:

新建一個storyboard,取個名稱Storyboard_new,copy原來MainStoryboard的內容到該storyboard,並進行修改。


假如如下代碼,來判斷和選擇加載:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    
    //判斷當前IOS系統版本,加載不同的storyboard,用於適配IOS5.0
    float curSystemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
    NSString *storyboardName = @"MainStoryboard";
    if (curSystemVersion >= 5.0 && curSystemVersion < 6.0) {
        storyboardName = @"Storyboard_new";
    }
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];
    self.window.rootViewController = [storyboard instantiateInitialViewController];
    [self.window makeKeyAndVisible];
    
    return YES;
}

可以實現根據不同版本加載不同的storyboard。


但是!

沒有解決我的核心問題:想同時在項目中使用IOS6以上的Autolayout特性,又兼容IOS6一下的AutoSize方式。

雖然有兩個storyboard,一個是use autolayout,一個不用auto layout,但是卻編譯不通過啊,這個是硬傷,沒法解決,唉。


當選擇Deployment Target爲5.0時,就報錯了:



這個問題還得尋求其他途徑解決,上面介紹的根據不同情況選擇加載storyboard的方法,還是可以用到其他場景的。^_^

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章