我正在查看iPhone初学编程书中的一个示例,他们有代码在按下按钮时在两个视图之间切换。这是他们示例代码中的第一个代码段:
if (self.yellowViewController.view.superview == nil)
{
if (self.yellowViewController == nil)
{
YellowViewController *yellowController =
[[YellowViewController alloc] initWithNibName:@"YellowView"
bundle:nil];
self.yellowViewController = yellowController;
[yellowController release];
}
[blueViewController.view removeFromSuperview];
[self.view insertSubview:yellowViewController.view atIndex:0];
}
else
{
if (self.blueViewController == nil)
{
BlueViewController *blueController =
[[BlueViewController alloc] initWithNibName:@"BlueView"
bundle:nil];
self.blueViewController = blueController;
[blueController release];
}
[yellowViewController.view removeFromSuperview];
[self.view insertSubview:blueViewController.view atIndex:0];
}
这对我有意义,但我的问题是,你如何使用具有四个视图的UISegmentControl执行此操作。我知道您可以检查selectedSegment并在需要时创建该视图。但是我怎么知道最后一个视图是什么,以便将它从superview中删除,并将我的新视图添加为子视图?谢谢!
答案 0 :(得分:1)
在为每个视图创建代码或IB设置标记值到segmentIndex.so时,您可以稍后通过该标记值获取它们。这很棘手且简单。
答案 1 :(得分:0)
对于任何UIView
,最前面的子视图为[[myView subviews] lastObject]
。
答案 2 :(得分:0)
你可以查看是否分配了哪个视图为nil然后删除。
if (yellowController) {
[yellowController.view removeFromSuperView];
[yellowController release];
}
您可以浏览四个视图以确定加载哪个视图,然后删除视图。