我正在使用拆分视图控制器中的iPad应用程序,应用程序将始终保持横向状态。我希望根视图控制器保持列表,并且详细视图控制器可以交换由UISegmentedControl控制的4个不同视图。
我在这里关注这篇帖子UISegmentedControl Best Practice,但是当我交换我的视图控制器时,它们没有正确地适合在detailview控制器中,它们被切断,好像他们正试图绘制ipad肖像一样取向。
如果我完全忽略了分段控制方法并且有一个详细视图,那么在详细视图中视图大小正确,但是一旦我尝试用分段控件交换它们就会遇到麻烦。
有没有办法让交换的视图正确绘制?
答案 0 :(得分:1)
你试过了吗?
swappedInView.frame = detailController.view.bounds;
致电
[detailedController.view addSubview:swappedInView];
他们的内容需要适当地设置其调整大小行为(最容易在xcode / IB中)。
答案 1 :(得分:0)
我也在使用UISegmentControl,但是以编程方式添加我的视图。我首先在rootController的viewDidLoad中加载了我的默认视图(段0)。然后根据按下哪个段,检查视图是否已初始化,如果没有,则初始化,然后将其添加为子视图。然后删除其他视图。关于如何跟踪它可以帮助你,我有一个类似的帖子,并有我用于我自己的应用程序的Beginning iPhone 4开发书的代码。如果您想采用这种方法,可以使用以下代码片段:
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];
}
在我自己的作品中,我添加了一个子视图,而不是将其插入其他视图后面(他们的示例中前面有一个工具栏)。因此,如果说段3被按下,那么我会检查其他视图是否存在超级视图,删除该视图,添加我的视图。希望有所帮助。