我正在创建一个拆分视图控制器应用程序,详细视图在顶部的导航栏中有一个分段控件。单击一个段将为详细视图添加一个新视图,并在其上显示相应的信息(覆盖DetailViewController的默认UIView)。
我创建了两个新的UIViews,对应于每个段,我正在尝试将它们添加到视图中(在DetailViewController.m中):
if (exerciseSegmentControl.selectedSegmentIndex == UISegmentedControlNoSegment) {
NSLog(@"No segment selected");
}
UIView *viewToShow;
if (selectedView == 0 && exerciseSegmentControl.selectedSegmentIndex == 1) {
viewToShow = exerciseSolutionView;
}
else {
viewToShow = exerciseView;
}
[self.view addSubview:viewToShow];
我看到视图显示,但它位于错误的位置,它位于窗口的最顶部,而不是位于导航栏下方。
在IB中,我创建了视图的实例,并且我使用了属性检查器为顶部栏指定了“导航栏”,它可以正确设置视图的高度。但是视图显然在窗口中被添加得太远了 - 我看到它下方的视图(DetailViewController的UIView)在底部突出(我改变了背景颜色,所以我知道我正在看哪个视图)。
有关如何获取我正在添加的子视图以获得正确放置在窗口中的任何提示?
谢谢!
答案 0 :(得分:0)
可能您可能想要手动在IB(或代码中)添加导航栏。
在顶栏设置中设置导航栏并不会真正添加导航栏,也不会为其保留一些空间。
无论如何..我通常做的是在IB中添加2个视图,然后正确堆叠它们。
然后将它们与IBOutlet联系起来。 这很可能会解决你的问题