2014-02-04 2 views
0

Первый вид имеет кнопку компоновки, которая вызывает composeview как модальный диалог. Я добавил кнопку отмены ко второму виду. Где добавить действие для кнопки отмены?как запустить обратную кнопку в режиме просмотра модального окна навигации

ComposeTweetVC* composeViewController = [[ComposeTweetVC alloc] initWithNibName:@"ComposeTweetVC" bundle:[NSBundle mainBundle]]; 
UINavigationController *nvc = [[UINavigationController alloc] initWithRootViewController:composeViewController]; 

UIBarButtonItem *newBackButton = 
[[UIBarButtonItem alloc] initWithTitle:@"Cancel" 
           style:UIBarButtonItemStyleBordered 
           target:nil 
           action:@selector(backPressed:)]; 

composeViewController.navigationItem.leftBarButtonItem = newBackButton; 

[self presentViewController:nvc animated:YES completion:nil]; 

Где я могу добавить метод backPressed? Если я добавлю в viewcontroller, вызывающий composeviewcontroller, он никогда не вызывается.

ответ

1

Вы можете добавить его в любое удобное для вас.

Ваша проблема:

target:nil 

Вы по существу вызова [nil backPressed:] который является NOOP.

Попробуйте изменить nil на номер self или composeViewController или любой объект, который вы хотите получать при нажатии кнопки.

+0

Perfect. Спасибо ! Я чувствую, что я должен быть ответственным за отказ от представления, поскольку он создал его в первую очередь. Какова наилучшая практика? –

0

Вы устанавливаете цель nil так backPressed: никогда не будет называться

пытаются изменить эту строку

UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" 
          style:UIBarButtonItemStyleBordered 
          target:nil 
          action:@selector(backPressed:)]; 

быть

UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" 
          style:UIBarButtonItemStyleBordered 
          target: composeViewController 
          action:@selector(backPressed:)]; 
0

установить цель

initWithTitle:style:target:action: 

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

- (id)initWithTitle:(NSString *)title style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action 

Параметры

название

название элемента. Если nil заголовок не отображается.

стиль

Стиль элемента. Одна из констант, определенных в UIBarButtonItemStyle.

целевой

Объект, который принимает сообщение действия.

действие

Действие для отправки целевой при выборе этого пункта.

, а затем использовать

-(void) backPressed:(id)sender{ 

    [self dismissViewControllerAnimated:YES completion:nil]; 
} 
Смежные вопросы