iOS 3.X SIGABRT с настройкой modalPresentationStyle, отлично работает на 4.2 iPod Touch - PullRequest
0 голосов
/ 03 августа 2011

Настройка стиля презентации на iPod Touch 2G (3.1.3) не работает с SIGBART, но отлично работает на iPod Touch 4G (4.2). Это ошибка? Может кто-нибудь дать мне обходной путь?

DateDialogController* dlg = [[DateDialogController alloc] initWithNibName:@"DateDialogView" bundle:nil];
[dlg setDelegate:self];
dlg.startDate = self.anchorDate;
self.navigationController.modalPresentationStyle = UIModalPresentationCurrentContext;
[self.navigationController presentModalViewController:dlg animated:YES];
[dlg release];


2011-08-02 13:44:20.785 Mobile Manager[274:207] *** -[UINavigationController setModalPresentationStyle:]: unrecognized selector sent to instance 0x230000
2011-08-02 13:44:20.789 Mobile Manager[274:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UINavigationController setModalPresentationStyle:]: unrecognized selector sent to instance 0x230000'
2011-08-02 13:44:20.799 Mobile Manager[274:207] Stack: (
    864992541,
    859229716,
    864996349,
    864492313,
    864454720,
    346779,
    864749711,
    839231364,
    839231212,
    839231156,
    839230220,
    839233420,
    839227648,
    839225236,
    839206800,
    839205012,
    875886564,
    864740651,
    864738335,
    875880904,
    838872112,
    838865456,
    54257,
    54172
)
terminate called after throwing an instance of 'NSException'
Program received signal:  “SIGABRT”.

1 Ответ

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

Свойство, которое вы устанавливаете modalPresentationStyle, доступно только на iOS3.2 +. Так как ваш iPod работает на 3.1.2, он не может отвечать на методы, которые устанавливают свойство

Он находится в UIViewController docs

Что касается обхода проблемы, такой код обычно помогает.

 DateDialogController* dlg = [[DateDialogController alloc] initWithNibName:@"DateDialogView" bundle:nil];
[dlg setDelegate:self];
dlg.startDate = self.anchorDate;

// Set the property if the iOS version allows it
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];    
if ([currSysVer compare:@"3.2" options:NSNumericSearch] != NSOrderedAscending) {
    self.navigationController.modalPresentationStyle = UIModalPresentationCurrentContext;
}

[self.navigationController presentModalViewController:dlg animated:YES];
[dlg release];
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];    
if ([currSysVer compare:@"3.2" options:NSNumericSearch] != NSOrderedAscending) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...