我已经实现了一个MGSplitViewController,其中我在masterviewcontroller中有6行,每一行都将一个新的UIViewController加载到detailviewcontroller中 - 我使用多个详细视图控制器跟踪了Apples示例项目。但是我遇到了一些奇怪的问题。
首先,在初始加载时,第一个选定的detailviewcontroller完美显示。但是,当我在masterviewcontroller中选择不同的行来更改详细视图控制器时,行被选中但是detailviewcontroller没有改变 - 这样就可以继续这样做几次点击 - 然后一切正常。
差不多,现在当新的detailviewcontroller实际加载时,有时会覆盖视图。例如,如果我首先选择带有tableview的detailviewcontroller,然后选择一个只有一些按钮的按钮 - 按钮会显示在tableview上。如果有人能理解我做错了什么,请告诉我。这是我的selectrow方法。
- (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;
}
}
答案 0 :(得分:2)
在MGSplitViewController中似乎存在一个错误,它不会删除之前的detailViewController视图。要解决此问题,请在switch语句上方添加以下行:
[self.splitViewController.detailViewController.view removeFromSuperview]