Уволить ModalView программно кнопкой Готово - PullRequest
0 голосов
/ 13 января 2012

Я должен нажать на кнопку «Готово», чтобы программно отключить режим просмотра.Я думаю, UIButton лучше, чем UIBarButtonItem, добавить UIControlEventsTouchupInside.

Но с UIButton я запутался, какой тип кнопки следует использовать.

   UIButton *button = [UIButton buttonWithType:UIButtonTypeInfoLight];

[button addTarget:self action:@selector(displayModalViewaction:) forControlEvents:UIControlEventTouchUpInside];    

  UIBarButtonItem * button = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                          target:self
                                                                          action:@selector(dismissViewaction:)] autorelease];

Ответы [ 2 ]

1 голос
/ 13 января 2012

Скорее всего, вы захотите использовать UIButtonTypeRoundedRect или UIButtonTypeCustom

. Пользовательский тип позволяет добавлять изображения для отображения.
Вы можете попробовать «украсть» эти изображения из UIBarButtonItem (свойство изображения определено в UIBarItem) и создание пользовательской кнопки в виде кнопки UIBarButtonSystemItemDone

UIBarButtonItem * buttonForImage = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:nil                                                                       action:nil] autorelease];

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

[button addTarget:self action:@selector(displayModalViewaction:) forControlEvents:UIControlEventTouchUpInside];

[button setImage:buttonForImage.image forState:UIControlStateNormal];

На что обращать внимание.При настройке изображения для UIButton оно не масштабируется до размера кнопки в соответствии со свойством contentMode.Если вы хотите, чтобы изображение соответствовало правилам свойства contentMode, используйте setBackgroundImage: forState:.

0 голосов
/ 13 января 2012

Я думаю, тип кнопки не имеет значения.Вы должны назначить действие или селектор на кнопку.Примерно так:

UIBarButtonItem *bttItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(yourBttAction:)] autorelease];

действие:

- (IBAction) yourBttAction:(id)sender
{
    NSLog(@"Done Button clicked");

    //do something
}

Если кнопка находится на modalViewController, я обычно для ее отклонения использую:

[self dismissModalViewControllerAnimated:(BOOL)];

или

//if you have a navigationController
[self.navigationController dismissModalViewControllerAnimated:(BOOL)];

Но если вы хотите использовать делегата для его отклонения, взгляните на этот учебник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...