通过警报打开后,视图保持为空

时间:2013-05-23 17:10:44

标签: ios view alert appdelegate

我的应用程序中有一个警报,当用户点击其确定按钮时,会打开一些新的按钮:但是这几个保持为空...没有按钮等显示(以某种方式正确显示背景)。

在AppDelegate.m文件中首次启动应用程序时会打开此警报:

-(void) alertView:(UIAlertView *) alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    if (buttonIndex == 0) {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        FirstVC *launchViewController = [[FirstVC alloc] init];
        self.window.rootViewController = launchViewController;
        [self.window makeKeyAndVisible];

    }
}

使用UIWindow可能是错误的。 感谢你的所有答案。 (FirstVC是单击alert-buttton后显示的viewController)

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

    NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
    if (! [defaults boolForKey:@"notFL"]) {
        UIAlertView *alert = [[UIAlertView alloc]initWithTitle: @"Welcome"
                                                       message: @"..."
                                                      delegate: self
                                             cancelButtonTitle:nil
                                             otherButtonTitles:@"OK",nil];


        [alert show];


        [defaults setBool:YES forKey:@"notFL"];


    }
}

1 个答案:

答案 0 :(得分:0)

您需要描述故事板中的控制器。应用程序首次打开时显示的警报是什么控制器?你的问题是你只是初始化一个FirstVC,而不是你在故事板中设置的那个。要获得该实例,您需要执行以下操作:

FirstVC *launchViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"FirstVC"];

如果您从初始视图控制器调用它显示警报,这将起作用。我认为把你发布的男女同校放在第一个控制器的viewDidAppear方法中会更好。

如果你想在app delegate中执行此操作,那么你需要以不同的方式获得对storyboard的引用:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
FirstVC *launchViewController = [storyboard instantiateViewControllerWithIdentifier:@"FirstVC"];