uialertview на странице входа при каждом запуске

У меня есть предупреждение, чтобы показать обновление новой версии на странице входа (1-я страница). Но на самом деле я хочу, чтобы это предупреждение появлялось только на странице входа при каждом запуске. я видел так много вопросов, связанных с этим, но ни один из них не помог, некоторые из них Отображение предупреждающего сообщения только ОДИН РАЗ, но повторное появление при запуске приложения

UIAlertView, когда пользователь открывает приложение. Показано один раз .......

Теперь мой код

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

в методе DidBecomeActive. Мы звоним в Webservice, чтобы получить уведомление об обновлении.

и моя проблема

1) Используя код в DidBecomeActive, в первый раз он работает хорошо после закрытия без выхода из системы, и всякий раз, когда мы снова открываем приложение, предупреждение появляется на текущей странице, независимо от того, 1-я или последняя.


person New Xcoder    schedule 08.08.2012    source источник


Ответы (3)


Я бы предложил, чтобы вы вызывали метод в своем контроллере представления из своего делегата приложения.

В вашем файле appdelegate.m у вас будет метод с именем applicationDidFinishLaunchingWithOptions..., здесь будет некоторый код, который создает экземпляр представления и вызывает первый контроллер представления.

Например, я только что начал новый проект (приложение Master Detail, но ваше будет похоже).

В моем файле 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 контроллер представления, добавляет его к контроллеру навигации и устанавливает переменную manageObjectContext.

После этого вы можете вызывать любые методы на вашем контроллере представления:

[masterViewController showAlertDialog:@"My Message Here"]

В masterViewController вам нужно сделать метод с именем showAlertDialog:

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

Поскольку метод applicationDidFinishLauching... делегата приложения будет вызываться только при запуске приложения, это означает, что диалоговое окно с предупреждением будет отображаться только при запуске приложения!

Надеюсь, это поможет.

person Thomas Clayson    schedule 08.08.2012

Позвольте мне предположить, что вам нужно отображать предупреждение только при первом запуске приложения... если это так... попробуйте этот метод

Чтобы определить, является ли это первым запуском метода appdidfinishlaunching

сохранить логическое значение в nsuserdefaults, например firstRun

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

а затем позже, когда вы отображаете предупреждение, отображайте его только тогда, когда это значение равно YES

person sujith1406    schedule 08.08.2012
comment
не только в первый раз. когда я выйду из системы и снова открою, он должен появиться. - person New Xcoder; 08.08.2012
comment
ok, затем измените описанный выше процесс, чтобы установить для BOOL loggedIn значение YES, когда вы входите в систему, и NO, когда вы выходите из системы.... и отображать предупреждение только тогда, когда переменная loggedIn имеет значение NO. - person sujith1406; 08.08.2012

Напишите следующий код в методе viewDidLoad соответствующего контроллера представления:

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

message.alertViewStyle = UIAlertViewStyleSecureTextInput;

[message show];
person RKY    schedule 08.08.2012