UIActionSheet Неверный параметр не удовлетворяет: view! = Nil - PullRequest
0 голосов
/ 14 февраля 2012

Я получаю эту ошибку после добавления некоторых контроллеров представления в стек навигации, и в конце я задаю вопрос через лист действий.Я получаю параметр ошибки, не удовлетворяющий view != nil, что сводит меня с ума, потому что это так, поэтому факт не является значением nil, когда я проверяю перед вызовом таблицы действий.

   if (self.view != nil) {
            NSLog(@"view is not nil");
        }
UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:@"title" delegate:nil cancelButtonTitle:@"cancel" destructiveButtonTitle:@"destructive" otherButtonTitles:nil];
    [actionSheet showInView:self.view];

Ответы [ 4 ]

5 голосов
/ 21 июля 2012

Весьма вероятно, что представление, в котором вы пытаетесь отобразить таблицу UIActionSheet, еще не прикреплено к окну.Попробуйте вызвать showInView после того, как представление прикреплено к окну.Предполагая, что приведенный выше код находится в реализации контроллера представления, попробуйте вызвать его в viewDidLoad вместо loadView.

1 голос
/ 22 января 2013

showInView дал мне Недопустимый параметр не удовлетворяет: view! = Nil исключение тоже .. поэтому я попытался [self.view addSubview action sheet];

showInView следует вызывать после viewDidLoad, поэтому, если добавить [actionSheet showInView: self.view]; в viewDidAppear он не потерпит крах ..

1 голос
/ 14 февраля 2012

Мне пришлось [self executeSelector: withObject: afterDelay: 1.] После каждого всплытия, я предполагаю, что это должно что-то делать с состоянием представления. Необходимо отобразить.

0 голосов
/ 02 мая 2013

Эта ошибка произошла в моих модульных тестах в Xcode 4.6.2, когда она попала в строку, которая должна представлять UIActionSheet.Это не происходило в более старых версиях Xcode.Я думаю, что это из-за аналогичной проблемы - нет представления для представления во время модульного тестирования.

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

...