2013-08-03 5 views
0

Я создаю кнопку и добавить его в мой ToolBar, как это:ios open modal от segue от программно созданной кнопки?

UIButton *sendButtzon = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
sendButtzon.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; 
[sendButtzon setTitle:@"More" forState:UIControlStateNormal]; 
sendButtzon.frame = CGRectMake(toolBar.bounds.size.width - 18.0f, 
           6.0f, 
           58.0f, 
           29.0f); 
[toolBar addSubview:sendButtzon]; 

Как я могу открыть новый ViewController (который у меня есть SEGUE для имени «БольшеСмотреть»)?

ответ

3

Вы реализуете следующий метод действия:

-(void)buttonPressed:(UIButton*)sender 
{ 
    [self performSegueWithIdentifier:@"MoreView" sender:sender]; 
} 

И связывают это с вашей кнопки, как так (добавить эту строку в код в ваш вопрос):

[sendButtzon addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; 

Это вызывает кран кнопку для вызова метода buttobPressed:, который, в свою очередь, выполняет сегмент, который вы определили в раскадровке.

+0

Я получаю эту ошибку '*** Завершение приложения из-за неперехваченного исключения 'NSInvalidArgumentException', причина: 'Получатель () не имеет никакого сегмента с идентификатором' MoreView'' – Alosyius

+0

Oooops я пропустил на самом деле ссылку два взгляда в IB !! :) Большое спасибо человеку, он отлично работает сейчас – Alosyius

+0

В этом случае segue либо не был определен, либо определен из другого контроллера вида. – jrturton

0

Для этого вы должны определить segue с именем «MoreView» в доске объявлений.

или же вы должны создать UIViewControler на кнопку мыши, как это ..

-(void)buttonPressed:(UIButton*)sender 
{ 
    UIViewController *destinationController = [[UIViewController alloc] init]; 
    [self presentModalViewContrller:destinationController animated:YES]; 
} 

или Создать View Controller форму раскадровку.

-(void)buttonPressed:(UIButton*)sender 
{ 
    UIViewController *destinationController = [self.storyboard instantiateViewContrllerWithIdentifier:@"DestinationViewController "]; 
    [self presentModalViewContrller:destinationController animated:YES]; 
} 

Каждая доска объявлений UIViewController имеет свойство.

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