ECSlidingViewController не первый просмотр

Мое приложение запускается с видом, который не используется ECSlidingViewController, а затем есть кнопка для другого, который использует его.

При переключении видов с помощью Storyboard Segueно я получаю ошибку.

Что я должен добавить к btnGoSecondView загрузить ECSlidingViewController должным образом?


Код:

-(IBAction)btnGoSecondView:(id)sender {
    [self performSegueWithIdentifier:@"SecondViewShow" sender:self];
}

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


Ошибка:

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'

2 ответа

На основании ошибки вы получаете объект пытается вставить в изменяемый массив, но он не был инициализирован. Где в вашем коде выдается исключение?

Попробуйте выяснить, где к массиву обращаются и почему он нулевой. NSMutableArray, возможно, не был инициализирован, и в этом случае вам нужно будет инициализировать его.

NSMutableArray *arrayName = [NSMutableArray new];

Еще одна мысль: перед тем, как представить ECSlidingViewController, я думаю, вам нужно установить его topViewController. Вы можете добавить его в -prepareForSegue:sender: или в viewDidLoad представления viewController.

Возможно, что-то вроде этого:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

     ECSlidingViewController *slidingViewController = (ECSlidingViewController *)segue.destinationViewController;
     slidingViewController.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"FirstTop"];
}

Я думаю, что вы должны сначала сделать некоторое начальное представление, и сделать это представление начальным контроллером представления и сделать идентификатор для каждого контроллера представления.

что-то вроде этого..

self.viewcontroller = [раскадровка instantiateViewControllerWithIdentifier:@"home"];

Другие вопросы по тегам