我的应用程序中有一个警报,当用户点击其确定按钮时,会打开一些新的按钮:但是这几个保持为空...没有按钮等显示(以某种方式正确显示背景)。
在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"];
}
}
答案 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"];