将UITableViewControllers tableview添加到新的UIView

时间:2010-01-24 19:27:53

标签: iphone objective-c uitableview

我有一个简单的问题。

我有一个显示UITableView的普通UITableViewController。当用户点击我的应用程序右上角的按钮时,我希望TableView从右向左翻转,然后显示一个新的UIView。我找到了动画UIViewAnimationTransitionFlipFromRight,它翻转当前视图并用新视图替换它。但是,动画涉及从超级视图中删除当前视图,然后将新视图添加到同一个超级视图。 问题是当我尝试在我的UITableViewController类中执行此操作时,我只有一个视图 - UITableView - 我需要删除它。当UITableView被删除后,我没有剩下的视图来添加我的新视图,并且屏幕变为空白。

我解决这个问题的想法是创建一个UIView并将UITableView放在该视图中。我想在动画中从UIView中删除UITableView,然后将我的新视图添加到同一个UIView中。 初始化时有类似的事情:

superViewTest = [[UIView alloc] initWithFrame:self.tableView.frame];
[superViewTest addSubview:self.tableView];

然后像动画翻转时那样:

[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];
[self.tableView removeFromSuperview];
[superViewTest addSubview:self.mapView];

或者UITableViewController中的UITableView是否已经有了我不知道的超级视图?

我希望我能更好地解释这一点,提前谢谢!

2 个答案:

答案 0 :(得分:5)

我建议您使用标准的UIViewController而不是UITableViewController。然后,您可以直接控制表及其父视图。将表添加为UIViewController视图的子视图,并按照您描述的方式将其与您的翻转视图交换。

答案 1 :(得分:0)

您可能只能使用presentModalView或其他任何内容。使用“Utility”项目模板创建一个新应用程序,并查看它是如何做到这一点的。如果您实际上不想切换到模态视图,那么模态视图的东西将无效。