2013-06-20 4 views
1

Мне нужно сделать кнопку («Продолжить»), чтобы открыть еще один UiView/Page. Я очень новичок в развитии. Может кто-нибудь, пожалуйста, поймать меня, хотя это? Спасибо, вы, ребята, очень помогли мне.Использование UiActionSheet в раскадровке?

Код:

- (IBAction)OpenActionSheetButton:(id)sender { 


UIActionSheet *actionsheet = [[UIActionSheet alloc]initWithTitle:@"There is no going back,  are you sure???" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Continue" otherButtonTitles:nil, nil]; 
[actionsheet showInView:self.view]; 
} 

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
if(buttonIndex == 0) 
{ 
    UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"storyboardViewIdentifier"]; 
    //storyboardViewIdentifier is the ViewController identifier you specify in the storyboard 

    //PUSH 
    [self.navigationController pushViewController:controller animated:YES]; 
    //Modal 
    [self presentViewController:controller animated:YES completion:Nil]; 
} 
} 

Это то, что я сделал с кодом:

- (IBAction)OpenActionSheetButton:(id)sender { 


UIActionSheet *actionsheet = [[UIActionSheet alloc]initWithTitle:@"There is no going back, are you sure???" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Continue" otherButtonTitles:nil, nil]; 
[actionsheet showInView:self.view]; 
} 

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
if(buttonIndex == 0) 
{ 
    if(buttonIndex == 0) 
     [self performSegueWithIdentifier:@"openView" sender:self]; 
    UIViewController *controller = [self.storyboard 


    instantiateViewControllerWithIdentifier:@"storyboardViewIdentifier"]; 
    //storyboardViewIdentifier is the ViewController identifier you specify in the storyboard 

    //PUSH 
    [self.navigationController pushViewController:controller animated:YES]; 
    //Modal 
    [self presentViewController:controller animated:YES completion:Nil]; 
} 

}

+0

есть ли отображаемый номер? – ApolloSoftware

+0

Да, это так :) Просто когда я нажимаю «Продолжить», он явно закрывает. – user212803

+2

Зачем вам нужно одновременно управлять контроллером вида и настоящим контроллером представления? Вы должны выбрать только один. –

ответ

1

Почему вы не выполнить ПРЕДСТАВЛЕНИЕ SEGUE довести до контроллера следующего вида ? Перейдите в свою раскадровку и создайте segue, указывающий на новый контроллер представления. Вам нужно создать modal segue и назвать его чем-то уникальным.

Для этого добавьте все необходимые контроллеры представлений в свою раскадровку, затем щелкните правой кнопкой мыши на представлении контроллера представления. Создайте презентацию модального segue.

Тогда из вашего кода внутри вы можете просто положить:

if(buttonIndex == 0) 
     [self performSegueWithIdentifier:@"openView" sender:self]; 

Уволить еще проще!

[self dismissModalViewControllerAnimated:YES]; 
+0

Привет, Спасибо, что ответили. ОК. Скажите мне, если я делаю это правильно: я щелкнул по экрану с представления, на котором был листок действий, и перетащил его в представление, которое я хочу, чтобы открыть кнопку «Продолжить». Я щелкнул модель и направо я ввел в поле «Идентификатор» «YesContinue» в качестве имени. Можете ли вы объяснить, что вы имели в виду под «добавьте все необходимые контроллеры представлений в свою раскадровку, затем щелкните правой кнопкой мыши на представлении контроллера представления. Создайте презентацию модального сегмента». Нужно ли добавлять больше контроллеров просмотра, чем у меня уже есть? Спасибо, я знаю, что я звук очень простой, но я :( – user212803

+0

Я обновил свой код с тем, что у меня есть там ^^ – user212803