我正在處理導航堆棧中具有三個表視圖控制器的應用程序。根視圖控制器和第二個VC有工具欄,但我想添加一個子視圖到第二個視圖控制器like this。 (顏色只是爲了可視化。)將UIView子視圖添加到導航堆棧中的單個表視圖控制器
我想以編程的方式添加視圖,因爲我沒有能夠用IB來完成,而沒有大的頭疼。現在,我已經能夠種得到我想要的東西在這樣的第二視圖控制器繪製一個UIView:
- (void)viewDidLoad {
[super viewDidLoad]
UIView *detailView = [[UIView alloc] initWithFrame:CGRectMake(0, 392, 320, 44)];
detailView = [UIColor redColor];
[self.navigationController.view addSubview:detailView];
[detailView release];
}
這種方法的問題是,一旦UIView的是第二種觀點裝控制器,它保持加載並在第三個和根視圖控制器中繪製。我已經嘗試了各種刪除UIView的方法,包括在viewDidUnload中將detailView設置爲nil,在didSelectRowAtIndexPath(從整個棧中刪除視圖)中調用removeFromSuperview。
我也嘗試將subview添加到self.view,但是它將它推到table view的可見區域下面,所以我必須向上滾動才能看到它,並且當我放開時它會反彈回來。
顯然,將此子視圖添加到導航控制器並不是實現我想要的最佳方式,但我對於從這裏走向何處感到不知所措。
頁腳視圖不起作用,因爲子視圖需要始終可見,即表格視圖應該滾動到「後面」。 – 2010-10-15 01:55:10
你應該減小表視圖的高度,或者如果你真的想要在它後面滾動,添加detailView到self.view,然後執行'[self.view bringSubviewToFront:detailView]'(釋放之前)。 – Anna 2010-10-15 01:57:42
如果我將子視圖添加到自我,然後我將它附加到tableview,所以它與tableview滾動。我希望子視圖在工具欄上方靜止不動。 – 2010-10-15 02:22:56