Установите корневой ViewController в UISplitViewController из подробного представления - PullRequest
0 голосов
/ 16 ноября 2010

У меня есть UISplitViewController, и я хочу изменить контроллер корневого представления (в левой части экрана), когда я нажимаю кнопку в подробном представлении (в правой части экрана).

Если я делаю это в подробном представлении:

NextGameViewController *newTableViewController = [[NextGameViewController alloc] init];
NSArray *newVCs = [NSArray arrayWithObjects:newTableViewController, self, nil];
splitViewController.viewControllers = newVCs;

Сбой при ошибке:

-[NextGameViewController setParentViewController:]: unrecognized selector sent to instance 0x4938a50

NextGameViewController является подклассом UITableViewController, так почему же это происходит?Если я вставлю его в стек контроллера представления из корневого представления, он будет работать нормально.

1 Ответ

0 голосов
/ 16 ноября 2010

UITableViewController's parentViewController является свойством только для чтения.См. этот SO вопрос для дальнейшего обсуждения.Звучит так, будто вы хотите выдвинуть новое табличное представление слева от подробного представления, но все еще под корневым представлением, а не заменять сам контроллер корневого представления, что вы и описываете.используйте массив, который вы пытаетесь заменить, чтобы получить эту информацию.См. эту ссылку о свойстве viewControllers для получения дополнительной информации.

Также ваш делегат приложения должен иметь доступ к вашему корневому и подробному представлениям.Вы можете получить делегат приложения и использовать свойство Delegate.root, чтобы поместить его в стек контроллера, как вы ранее описали.Как то так:

MyAppDelegate* del = (MyAppDelegate*)[[UIApplication sharedApplication] delegate];
// do what you want with del.root controller here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...