2010-04-07 2 views
0

У меня здесь небольшая проблема. Я использую оператор if с помощью UIAlertView, и у меня есть две ситуации, и результат UIAlertViews. Однако в одной ситуации я хочу отклонить только UIAlertView, а другой, я хочу, чтобы UIAlertView был уволен и просмотрел, чтобы вернуться в корневой режим.Как правильно форматировать этот код?

Этот код описывает это:

if([serverOutput isEqualToString:@"login.true"]){ 

[Alert dismissWithClickedButtonIndex:0 animated:YES]; 
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 

UIAlertView *success = [[UIAlertView alloc] initWithTitle:@"Success" message:@"The transaction was a success!" 
                  delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; 
[success show]; 
[success release]; 

} else { 

    UIAlertView *failure = [[UIAlertView alloc] initWithTitle:@"Failure" message:@"The transaction failed. Contact sales operator!" 
                delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; 
    [failure show]; 
    [failure release]; 
} 
} 

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

switch(buttonIndex) { 
    case 0: { 
     [self.navigationController popToRootViewControllerAnimated:YES]; 
    } 
} 
} 

Таким образом, в обоих случаях они следуют за выше действия, но очевидно, что это не то, что я хочу. Любые идеи о том, что я здесь делаю?

+0

я не знаю , но почти все лучше, чем у вас. валовой. – Pyrolistical

+0

как это плохо? – bear

+0

В чем вопрос? это о форматировании кода или это о alertviews? –

ответ

1

Вам нужно будет провести различие между 2 uialertview в вашем методе clickedButtonAtIndex:.

Используйте свойство tag, чтобы отличиться.

При создании alerview присвоить идентификатор тега к ним:

UIAlertView *success = [[UIAlertView alloc] initWithTitle:@"Success" message:@"The transaction was a success!" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; 
success.tag = 1; 
[success show]; 

Аналогично,

failure.tag = 2; 

Затем вы переходите на теге идентификаторами

switch(alertView.tag){ 
    case 1: //dismiss alertview 
    case 2: //dismiss alertview and return to root view 
} 
0

Вы можете вставить свой код в Eclipse и нажать ctrl+i.

+0

Xcode также имеет команду повторного ввода (я думаю, что это тоже может быть ctrl + i, но это было давно, так как я использовал его). – dbr

+0

Я попытался снова отступать с Xcode, но ничего не произошло. Я думаю, что Apple любит ваше форматирование :) Eclipse заставило его выглядеть немного приятнее. –

Смежные вопросы