MGSplitViewController с несколькими контроллерами детального представления - PullRequest
0 голосов
/ 08 января 2012

Я реализовал MGSplitViewController, где у меня есть 6 строк в masterviewcontroller, и каждая загружает новый UIViewController в detailviewcontroller - я следовал примеру проекта Apple для использования нескольких контроллеров детального представления. Но у меня есть пара странных проблем с этим.

Во-первых, при начальной загрузке первый выбранный подробный контроллер представления отображается отлично. Однако, когда я выбираю разные строки в masterviewcontroller, чтобы изменить контроллер подробного представления, строка выбирается, но detailviewcontroller не изменяется - это продолжается таким же образом в течение нескольких щелчков - тогда все работает нормально.

Ну, почти, теперь, когда новый контроллер detailview действительно загружает, иногда представления становятся наложенными. Например, если я сначала выбираю контроллер viewview с табличным представлением, а затем выбираю тот, в котором есть только несколько кнопок - кнопки отображаются поверх таблицы. Если кто-то может понять, что я делаю неправильно, пожалуйста, дайте мне знать. Вот мой метод выбора.

- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    /*
     Create and configure a new detail view controller appropriate for the selection.
     */

    switch (indexPath.row) {
        case 1:
        {
            self.splitViewController.detailViewController = self.postViewController;
//            popover = [[UIPopoverController alloc] initWithContentViewController:self.postViewController];
//            [popover presentPopoverFromRect:CGRectMake(200, 0, 100, 100) 
//                                     inView:self.splitViewController.view 
//                   permittedArrowDirections:UIPopoverArrowDirectionAny 
//                                   animated:YES];
            break;
        }
        case 2:
            self.splitViewController.detailViewController = self.latestViewController;
            break;
        case 3:
            self.splitViewController.detailViewController = self.categoriesViewController;
            break;
        case 4:
            self.splitViewController.detailViewController = self.messagesViewController;
            break;
        case 5:
            self.splitViewController.detailViewController = self.searchViewController;
            break;
        case 6:
            self.splitViewController.detailViewController = self.accountViewController;
            break;
        default:
            break;
    }
}

1 Ответ

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

Кажется, есть ошибка в MGSplitViewController, когда он не удаляет предыдущее представление detailViewController. Чтобы решить эту проблему, добавьте следующую строку над оператором switch:

[self.splitViewController.detailViewController.view removeFromSuperview]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...