не может закрыть RootViewController - PullRequest
0 голосов
/ 26 июня 2011

В Xcode 4 я создал проект SplitView, поэтому у меня есть DetailViewController и RootViewController.

В viewDidLoad () RootViewController я добавил кнопку отмены на левой стороне, как это

// add a cancel button on the left side
cancelButton = [[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCancel 
                                                             target:self action:@selector(cancelAction:)] autorelease];
self.navigationItem.leftBarButtonItem = cancelButton;

Когда отображается RootViewController и я нажимаю кнопку отмены, я хочу закрыть RootViewController. В моем обработчике cancelButton я пытался вызвать

#if 0
    [self dismissModalViewControllerAnimated:YES];
#else   
    [self.navigationController popViewControllerAnimated:YES];
#endif

но ни один из них не работает для меня. Я часами пробовал гуглить, но до сих пор не нашел решения.

Может кто-нибудь подсказать, как закрыть RootViewController?

спасибо за вашу помощь

1 Ответ

0 голосов
/ 03 июля 2011

Я предполагаю, что вы пытаетесь закрыть поповер RootViewController в портретной ориентации, потому что в альбомной ориентации это не имеет смысла.

Вы можете сделать это так:

1) обработчик кнопки отмены:

-(void)cancelAction {
    [self.detailViewController.popoverController dismissPopoverAnimated:YES];
}

2) popoverController является частным в detailViewController, поэтому вы должны сделать его общедоступным (или добавить метод в detailview, который будет иметь доступ к свойству popoverController и вызвать этот метод из метода cancelAction в RootViewController):

2.1) удалить

@property (nonatomic, retain) UIPopoverController *popoverController;

от

@interface DetailViewController ()
...
@end

2.2) добавить

@property (nonatomic, retain) UIPopoverController *popoverController;

внутри

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