2013-04-22 2 views
-3

iam проверяет, доступен ли интернет или нет, бот пытается показать одно предупреждение, и когда я нажму кнопку «ОК», я хочу выйти из приложения. Но теперь это предупреждение не отображается и его не вызывает делегат.Оповещение не отображается?

в моем connectiviy функции

if([[notification object] isEqualToNumber:[NSNumber numberWithInt:0]]) 
    { 
     checkNetwork=[[UIAlertView alloc]initWithTitle:@"AssamKart" message:@"Device is not Connected To internet ,Please try again later " delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 

     [checkNetwork show]; 

    } 

в моем встревоженном делегате

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
    { 

     if(alertView==checkNetwork) 
     { 

      if(buttonIndex==1) 
      { 

      //here i open some other viewcontroller 
     }} 


    } 

пожалуйста help..me ...

+0

Не программно выходить из приложения! –

+0

Как мне выйти? – Naveen

+0

ok Я не уйду, но все же почему вид предупреждения не отображается? – Naveen

ответ

-2

Убедитесь, что вы отображение предупреждающего сигнала вида с основным резьба, то есть:

[checkNetwork performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO]; 

Надеются, что это помогает, А.

+0

Что это за главный вопрос? – Naveen

1

Там должен некоторые незначительные проблемы с вашим кодом, если вы показать все должны быть решены, но Major вещи, как вы просили

click this "Ok" button i want to exit app 

Нет способ для этого, как Human Interface Guidelines. «Не выключайте программно». Никогда не оставляйте приложение iOS программно , потому что люди склонны интерпретировать это как сбой.

Если есть какие-то конкретные причины для этого, вам нужно рассказать своим пользователям о ситуации и объяснить, что они могут с этим поделать.

1

Как руководство пользователя интерфейса Apple от Apple, вы не можете программно выйти из приложения.

возможно, ваше состояние может быть неправдой.

if([[notification object] isEqualToNumber:[NSNumber numberWithInt:0]]) 

Вы можете попробовать отладить свой код и посмотреть его. Во-вторых, если это только предупреждение, просто попробуйте показать предупреждение без условия и посмотреть, отображается ли оно.

Также как вы определяете checkNetwork? вы должны убедиться, что это retain или введите strong. Если вы используете iOS6, тогда используйте сильные и сделайте это как свойство.

@property(strong,nonatomic)UIAlertView *checkNetwork; 

Наконец, в вашем коде вы можете получить к нему доступ, используя префикс self..

self.checkNetwork=[[UIAlertView alloc]initWithTitle:@"AssamKart" message:@"Device is not Connected To internet ,Please try again later " delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
1

Ваш код должен работать. Я попытался бы поставить точку останова в заявлении IF

if([[notification object] isEqualToNumber:[NSNumber numberWithInt:0]]) 

, чтобы узнать, вызван ли код. Также это может помочь добавить

<UIAlertViewDelegate> in the .h. 

И снова, не бросайте программно!

+0

ok..this line выполняет – Naveen

+0

Если условие истинно, то я не думаю, что это проблема с UIAlertView. Я добавил ваш код в один из моих проектов, и он отлично работает (UIAlertView является ivar). Попробуйте запустить этот код за пределами условия, например, @nsgulliver. – CharlieReed

+0

, и так как вы хотели использовать предупреждение - (void) alertView: (UIAlertView *) alertView clickedButtonAtIndex: (NSInteger) buttonIndex для выхода из приложения (которое, надеюсь, больше не будет), вы можете удалить этот метод, и OK будет автоматически отклонить UIAlertView. – CharlieReed