一千萬個為什麽

搜索

在iPad中為DetailView UIView添加子視圖

我正在創建一個拆分視圖控制器應用程序,詳細信息視圖在頂部的導航欄中有一個分段控件。單擊一個段將向詳細視圖添加一個新視圖,並在其上顯示相應的信息(覆蓋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)在底部突出(我改變了背景顏色,所以我知道我正在看哪個視圖)。

有關如何獲取我正在添加的子視圖以獲得正確放置在窗口中的任何提示?

謝謝!

最佳答案

可能您可能想要手動在IB(或代碼中)添加導航欄。

在頂部欄設置中設置導航欄並不會真正添加導航欄,也不會為其保留一些空間。

無論如何..我通常做的是在IB中添加2個視圖,然後正確堆疊它們。

然後將它們與IBOutlet聯系起來。 這很可能會解決你的問題

轉載註明原文: 在iPad中為DetailView UIView添加子視圖