2011-04-10 70 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