2012-03-15 84 views
0

我在我的UINavigationController裏面創建了一個UITableView,問題是這個表覆蓋了它的頭部。這是我的課:UINavigationController裏面的UITableView

.H:

@interface SecondViewController : UINavigationController 

@end 

與.m的一部分:

- (id)init 
{ 
    self = [super init]; 
    if (self) { 

    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    UITableView *mmm = [[UITableView alloc] initWithFrame:CGRectMake(0, 0,320, 100) style:UITableViewStylePlain]; 

[self.view addsubview:mmm]; 


} 

我在做什麼錯?

回答

5

我不認爲這是你想要做的。

UINavigationController的文檔建議不要繼承子類。相反,我認爲你想創建一個UITableViewController和控制器推到導航控制器的堆棧(或者如果這是根視圖控制器,然後初始化與UITableViewController導航控制器。

MyTableViewController *tableController = [[MyTableViewController alloc] initWithStyle:UITableViewStylePlain]; 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:tableController]; 
// now add the navController's view to the view hierarchy, however you intend to do that. 
1

您的UITableView的框架將開始於原點0.0,0.0女巫是你的UINavigationController的原點。只要改變

CGRectMake(0, 0,320, 100) 

CGRectMake(0, 44,320, 100) 
僅供參考

僅供參考,不建議子類化UINavigationCantroller。

1

您正在爲屏幕上的左上角點0,0創建UITableView的框架。這會將桌子拉高到可以允許的高度。您可以執行以下兩項操作之一來解決此問題:

1)在IB中構建視圖並將其連接到控制器。在IB中,您可以告訴佈局管理器顯示不同的控件,例如狀態欄,導航控制器或選項卡欄。有了這些就可以讓你精確地放置UITableView。

2)修改用於在頁面上放置表格視圖的Rect。您將需要添加到第二個參數來移動框架。您可以玩多少添加,直到表視圖是你想要的。這個數字代表像素,數字越高,屏幕下方的控件左上角就會被放置。

祝你好運!

相關問題