0

我有一个 alertview 来显示登录页面(第一页)中新版本的更新。但实际上我希望这个警报每次启动时只出现在登录页面中。我已经看到了很多与此相关的问题,但没有人帮助他们中的一些人只显示一次警报消息,但在应用启动时再次出现

UIAlertView,一旦用户打开应用程序。显示一次 .......

现在我的代码是

 [self performSelector:@selector(getUpdate) withObject:nil afterDelay:0.1];

DidBecomeActive方法中。我们正在调用 Webservice 以获取更新 alertmsg。

我的问题是

1) 通过使用 DidBecomeActive 中的代码,它第一次在没有注销的情况下关闭,并且每当我们重新打开应用程序时,警报都会出现在当前页面中,无论是第一次还是最后一次。

4

3 回答 3

1

我建议您从应用程序委托中调用视图控制器中的方法。

在您的appdelegate.m文件中,您将有一个applicationDidFinishLaunchingWithOptions...在此处调用的方法,其中将是一些实例化视图并调用第一个视图控制器的代码。

例如,我刚刚开始了一个新项目(Master Detail Application - 但你的将是相似的)。

我的AppDelegate.m文件中有一些代码如下所示:

    PMXMasterViewController *masterViewController = [[PMXMasterViewController alloc] initWithNibName:@"PMXMasterViewController_iPhone" bundle:nil];
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
    self.window.rootViewController = self.navigationController;
    masterViewController.managedObjectContext = self.managedObjectContext;

这是init视图控制器,将其添加到导航控制器并设置 managedObjectContext 变量。

在此之后,您可以调用视图控制器上的任何方法:

[masterViewController showAlertDialog:@"My Message Here"]

masterViewController您需要创建一个名为的方法showAlertDialog

- (void)showAlertDialog:(NSString *)message {
    // show alert dialog here
}

由于应用程序委托的applicationDidFinishLauching...方法只会在应用程序启动时被调用,这意味着您的警报对话框只会在应用程序启动时显示!

希望有帮助。

于 2012-08-08T11:38:31.870 回答
0

让我猜你只需要在应用程序启动时第一次显示警报......如果是这样......试试这个方法

在appdidfinishlaunching方法中判断是否是第一次运行

在 nsuserdefaults 中存储一个布尔值,例如 firstRun

if([defaults objectForKey:@"firstRun"]==nil)
{
[defaults setBool:YES forKey:@"firstRun"];
}
else
{
[defaults setBool:NO forKey:@"firstRun"];
}

然后当你显示警报时,仅当此值为 YES 时才显示它

于 2012-08-08T11:38:48.747 回答
-1

在您关注的视图控制器的 viewDidLoad 方法中编写以下代码:

UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"UNLOCK PIN!"
                                                      message:@"Enter your valid PIN."
                                                     delegate:nil
                                            cancelButtonTitle:@"OK"
                                            otherButtonTitles:nil];

message.alertViewStyle = UIAlertViewStyleSecureTextInput;

[message show];
于 2012-08-08T11:35:15.890 回答