iPad не загружает модальный вид - PullRequest
1 голос
/ 17 августа 2011

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

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x72785a0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key aboutTableView.'

Он отлично работает с iPhone, но у меня проблема с iPad.

- (IBAction)showOptionsMenu
{
    self.optionsNavController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    self.optionsNavController.modalPresentationStyle = UIModalPresentationFormSheet;
    self.optionsNavController.modalInPopover = YES;
    [self presentModalViewController:self.optionsNavController animated:YES];
}

Обновление:

Это работает, но кнопка UIB не отображается:

MoreViewController *svc = [[[MoreViewController alloc] init] autorelease];
optionsNavController= [[UINavigationController alloc] initWithRootViewController:svc];
self.optionsNavController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
self.optionsNavController.modalPresentationStyle = UIModalPresentationFormSheet;
self.optionsNavController.modalInPopover = YES;
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(dissmissView)];
self.optionsNavController.navigationItem.rightBarButtonItem = doneButton;
[doneButton release];
[self presentModalViewController:self.optionsNavController animated:YES];

Ответы [ 2 ]

0 голосов
/ 17 августа 2011

Вот хороший способ запустить модальное представление для обоих устройств:

#define IDIOM   UI_USER_INTERFACE_IDIOM()
#define IPAD    UIUserInterfaceIdiomPad   

SomeViewController *svc = [[[SomeViewController alloc] init] autorelease];
if ( IDIOM == IPAD ) {
    UINavigationController *controller = [[UINavigationController alloc] initWithRootViewController:svc];
    [controller setModalPresentationStyle:UIModalPresentationFormSheet];
    [controller setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
    [self presentModalViewController:controller animated:YES];
    [controller release];
} else {
    /*  or you can present the view as modal:  */
    [self.navigationController pushViewController:svc animated:YES];
}

SomeViewController

-(void)viewDidLoad 
{
    [super viewDidLoad];

    if ( IDIOM == IPAD ) {
        UIBarButtonItem *doneButton = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                                     target:self action:@selector(dismiss)] autorelease];
        self.navigationItem.leftBarButtonItem = doneButton;
    }
}
-(void)dismiss
{
    [self dismissModalViewControllerAnimated:YES];
}
0 голосов
/ 17 августа 2011

Используете ли вы разные xib для iphone / ipad?

Если это так, проверьте ваши соединения в версии для iPad, возможно, существует соединение, которое вы не удалили.

...