2012-01-23 7 views
1

Предположим, у меня есть три views на моем storyboard.ios раскадровка логики

  • View 1 содержит input field и button.
  • input field где пользователь помещает свой ответ на «2 + 2»
  • View 2 содержит сообщение «перейти в первый класс!»
  • View 3 содержит послание «вы ужасны в математике ..»

Я хочу связать Просмотр 1 и View 2 с помощью раскадровки, но я хочу, чтобы запустить логику, когда кнопка нажата Просмотр 1.

Если поле ввода == 4 то вы приняты к View 2 и если нет, то вы перейдете к View 3. Возможно ли это с storyboarding?

ответ

5

Да

В раскадровке создать SEGUE от 1 Показать на View 2 управлением проволочки от вида контроллера 1 для просмотра контроллера 2. Нажмите на Segue и дать ему и идентификатор (VIEW2, например). Сделайте то же самое, чтобы создать segue из View 1 в View 3 (дать ему и идентификатор view3).

Затем в view1 кода контроллера представления добавьте следующий код, если в методе IBAction для кнопки:

if (input == 4) { 
    [self performSegueWithIdentifier: @"view2" sender: self]; 
} else { 
    [self performSegueWithIdentifier: @"view3" sender: self]; 
} 

Кроме того, вы можете метод prepareForSegue к контроллеру вида view1, где вы можете задать свойства контроллеры адресатов:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"view2"]) 
    { 
     [[segue destinationViewController] setManagedObjectContext:self.managedObjectContext]; 
     [[segue destinationViewController] setSelectedClient:selectedClient]; 
     [[segue destinationViewController] setAddNoteViewControllerDelegate:self]; 
    } 
    if ([[segue identifier] isEqualToString:@"view3"]) 
    { 
     // set properties for view3 view controller 
    } 
} 
Смежные вопросы