如何在初始化时让UIViewController成为UIWindow的rooViewController?

时间:2014-11-05 10:35:12

标签: ios objective-c uiviewcontroller uiwindow

我正在制作一个框架。但最后,我遇到了rootViewController UIWindow的问题 我有一个UIViewController的子类,在类中有一个名为- (void)showLogin的方法。

我知道我可以使用[self.window setRootViewController:myClass];让app获取rootViewController。但我只想使用一种方法[[WDLoginViewController sharedInstance] showLogin];来达到同样的效果。

要做到这一点,任何人都可以给我一些建议吗?

我的.h课程:

#import <UIKit/UIKit.h>

@interface WDLoginViewController : UIViewController 

+ (instancetype)sharedInstance;
- (void)showLogin;

@end

我的AppDelegate.m类:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    [[WDLoginViewController sharedInstance] showLogin];

    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];

    return YES;
}

2 个答案:

答案 0 :(得分:0)

如果您不想设置控制器,则不使用控制器使用视图。但我建议你使用setRootViewController,你必须有一个rotViewController。也许尝试将presentViewController用于与setRootViewController一起使用的控制器,以加载控制器WDLoginViewController

答案 1 :(得分:0)

以下是使用以下代码实现的方法: -

//In your WDLoginViewController

//Create this property in .h file or .m file
@property (strong, nonatomic) UIWindow *rootWindow;

-(void)showLogin {
  self.rootWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

  [self.rootWindow setRootViewController:self];
  [self.rootWindow makeKeyAndVisible];
}