Приложение вылетает при загрузке модального окна

Итак, я новичок в работе с Xcode и пытаюсь исправить существующее приложение. У меня возникла проблема с загрузкой HTML-файла в модальное окно.

Это код, который я считаю актуальным:

-(void) loadScreen
{
    [super loadScreen];


    formView = [[ontracHazardsFormSheetViewController alloc] init];
    [formView setModalPresentationStyle:UIModalPresentationFormSheet];
    formView.urlToLoad = [self.urlToLoadstringByAppendingString:@"/redzone"];
    formView.cookieValue = self.cookieValue;
    formView.dataObject = self.dataObject;
    formView.htmlString = self.redzoneHTMLString;
    [formView loadScreen];


}
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.


    NSMutableArray *array = [self.navigationItem.rightBarButtonItems mutableCopy];

    UIBarButtonItem *redZoneButton = [[UIBarButtonItem alloc] initWithTitle:@"Red Zones" style:UIBarButtonItemStylePlain target:self action:@selector(displayRedZones:)];
    redZoneButton.tintColor = [UIColor redColor];
    [array addObject:redZoneButton];
    self.navigationItem.rightBarButtonItems = array;

}
-(IBAction)displayRedZones:(id)sender
{
    NSLog(@"red zones");


    [self presentViewController:formView animated:NO completion:nil];


    //ontracWebViewController

}

У меня есть кнопка, которая запускает displayRedZones, и когда я ее использую, создается следующий отчет о сбое:

2016-03-30 14:05:55.539 eCoss[3680:1292033] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[_UIAlertControllerActionSheetRegularPresentationController _defaultAnimationController]: unrecognized selector sent to instance 0x15710d10'
*** First throw call stack:
(0x2265c10b 0x21e02e17 0x22661925 0x2265f559 0x2258fc08 0x26b05e03 0x267a7651 0x26b05d69 0x2689a979 0x268c631d 0x268c50b1 0x22e697bd 0x2261fe1f 0x2261fa51 0x2261d89d 0x22570bf9 0x225709e5 0x237bcac9 0x26800ba1 0xd1ac1 0x2221f873)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 

Xcode также показывает это при сбое приложения:

введите здесь описание изображения

Как я уже сказал, я совершенно новичок в использовании Xcode и полной остановки разработки IOS, поэтому, если я не включил что-то важное, пожалуйста, простите меня и дайте мне знать.

спасибо


person jampez77    schedule 30.03.2016    source источник
comment
Xcode дает сбой или ваше приложение дает сбой?   -  person trojanfoe    schedule 30.03.2016
comment
Приложение, Xcode в порядке   -  person jampez77    schedule 30.03.2016
comment
Пожалуйста, исправьте заголовок вашего вопроса тогда.   -  person trojanfoe    schedule 30.03.2016
comment
блин, плохой вопрос :/   -  person jampez77    schedule 30.03.2016
comment
Спасибо, даже не понял   -  person jampez77    schedule 30.03.2016
comment
ОК, теперь вам нужна достойная трассировка стека. Если вы запускаете это в Xcode, оно должно остановиться там, где происходит сбой, и вы сможете просмотреть стек. Этот список чисел должен быть символизирован, если он работает вне Xcode.   -  person trojanfoe    schedule 30.03.2016
comment
Приложение вылетает на симуляторе iPhone или iPad?   -  person Ronak Chaniyara    schedule 30.03.2016
comment
@RonakChaniyara Это на устройстве iPad.   -  person jampez77    schedule 30.03.2016
comment
@trojanfoe Хорошо, поэтому я обновил вопрос, о чем я думаю, что вы просите   -  person jampez77    schedule 30.03.2016
comment
Нет, это слишком поздно; вам нужно добавить точку останова для исключения, чтобы отладчик прервался во время исключения.   -  person trojanfoe    schedule 30.03.2016
comment
@trojanfoe Хорошо, поэтому я не знаю, связано ли это, но если я ставлю точку останова в строке presentViewController, я получаю [_UIAlertControllerActionSheetRegularPresentationController _defaultAnimationController]: unrecognized selector sent to instance После этого появляется обычная ошибка   -  person jampez77    schedule 30.03.2016


Ответы (1)


Используйте приведенный ниже код:

Для iPhone:

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

Для iPad:

UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:formView];

    [popup presentPopoverFromRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

Нравиться,

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
    [self presentViewController:formView animated:YES completion:nil];
}
else {
    // Change Rect to position Popover
    UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:formView];
    [popup presentPopoverFromRect:CGRectMakeCGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

Примечание. Внесите изменения в соответствии с требованиями.

person Ronak Chaniyara    schedule 30.03.2016