2011-04-10 69 views
0

我必須xibs,我想加載用戶想要在設置中的哪一個。我只是在實際加載它們,並且將如何完成。iPhone正在加載不同的視圖

這是委託中的功能,我認爲這會發生。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

    [self.window addSubview:viewController.view]; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

這是委託頭文件。

#import <UIKit/UIKit.h> 

@class myAppViewController; 

@interface myAppAppDelegate : NSObject <UIApplicationDelegate> { 
    UIWindow *window; 
    myAppViewController *viewController; 
} 

@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet myAppViewController *viewController; 

@end 

因此,讓我們說我有一個叫做modernTheme的xib,我將如何加載它或myAppViewController。如果有人可以在通用的if語句中做到這一點,那就太棒了。

回答

1

這看起來像你的viewController正在'Interface Builder'中創建。相反,你可以自己創建ViewController並動態添加它們。你可以application:didFinishLaunchingWithOptions:看起來是這樣的:

UIViewController *viewController; 

if (showModernTheme) { // from your configuration 
    viewController = [[YourViewControllerA alloc] initWith…]; 
} else { 
    viewController = [[YourViewControllerB alloc] initWith…]; 
} 

// assuming YourViewControllerA + B are inheriting from UIViewController 

[self.window addSubview:viewController.view]; 
[self.window makeKeyAndVisible]; 

希望幫助
-f

+0

我創建接口bulider的廈門國際銀行,否則這將是方式對我來說很難,因爲有很多的按鈕在佈局中。有沒有辦法做到這一點,創造他們在interfacae建設者 – Vikings 2011-04-10 14:03:04

+0

是的,當然。當showModernTheme被設置並且在if語句中調用addSubview ...和makeKey ...時,您可以創建皮膚化的skinnedViewController。在else語句中,你可以發送viewController的兩條消息。所以你將有一個ViewController在代碼中創建,另一個使用IB。 – flohei 2011-04-13 12:14:44