2013-11-07 2 views
1

Я создаю приложение для ios, и у меня есть кнопка navbar с отображением пользователя uialertview с двумя кнопками для отмены и вторым для выполнения segue при нажатии пользователем на отмену, он останется на том же страница, но когда он пресс-Яс хочет уходить, он придет к предыдущему ViewControllerНужна помощь в создании Segue

здесь код .m файл

-(IBAction)done:(id)sender{ 

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello" message:@"Are You Sure??" delegate:nil cancelButtonTitle:@"NO" otherButtonTitles:@"YES", nil]; 

    [alert show]; 

} 

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

    NSString *title = [alertView buttonTitleAtIndex:buttonIndex]; 

    if ([title isEqualToString:@"YES"]) { 

     segueShouldOccur = YES; 

    } 

} 

- (BOOL) shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender{ 

if ([identifier isEqualToString:@"perform"]) { 

if (!segueShouldOccur) { 

    return NO; 

    } 

} 

    return YES; 

} 

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

+0

это хорошее начало для вас http://www.raywenderlich.com/50308/storyboards-tutorial-in-ios-7-part-1 – DogCoffee

+0

Спасибо ВАМ за ваш ответ. – user2966615

ответ

0

Попробуй так:

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
    NSString *title = [alertView buttonTitleAtIndex:buttonIndex]; 
    if([title isEqualToString:@"YES"]){ 
    //YES is pressed , perform segue! 
    [self performSegueWithIdentifier:@"perform" sender:self]; 
    } 
} 

EDIT, вы должны установить deleguate к себе не ноль

-(IBAction)done:(id)sender{ 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello" 
                message:@"Are You Sure??" 
                delegate:self //set the delegate ! 
              cancelButtonTitle:@"NO" 
              otherButtonTitles:@"YES", nil]; 

    [alert show]; 
} 
+0

Я пробовал это, но ситуация по-прежнему такая же. остается на той же странице .. СПАСИБО за ваш ответ – user2966615

+0

@ user2966615 убедитесь, что у вас есть 'UIAlertViewDelegate' на вашем интерфейсе – meda

+0

Уже сделано. Спасибо – user2966615

0

Ваш фактически не вызывая переход к «происходят» - просто установив Bool чтобы это произошло. (Вы должны называть performSegueWithIdentifier: sender :)

+0

попробовал, но тот же. благодаря – user2966615

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