2010-11-07 72 views
0

我意識到這是一個熱門話題,我已經在這裏搜索了很多帖子,但沒有發現任何有助於我的問題的東西。我是一個初學者,爲什麼它的價值(正如你會看到我的問題:-)如何從UINavigationController中以編程方式添加第二個UITableView

我的應用程序有一個標籤欄3項。第一個加載一個UINavigationController,它打算有3個「屏幕」向下鑽取(第一個:UITableView,第二個:已過濾的UITableView,第三個:UIView)。在我的生活中,我無法弄清楚如何以編程方式在第二個屏幕上顯示UITableView。

因爲我沒有使用IB,所以我優先於- (void)loadView。在不同的時間,我已經試過了諸如:

- (void)loadView 
{ 
    [super loadView]; 

    // first option (thought for sure this would work) 
    [[self view] addSubview:secondTableView]; 

    // another... 
    [self tableView:secondTableView]; 

    // another... 
    [[[[self navigationController] topLevelController] view] addSubview:secondTableController]; 
} 

我有表視圖設置正確與它的委託和數據源,我只是無法弄清楚如何展現這該死的東西。第二個控制器也繼承自UITableViewController。此外,我不知道如何說「在導航標題和標籤欄菜單內適合此表格視圖」。我正在使用CGRectMake()來猜測尺寸,但它似乎應該有一個更好的方法(也許這就是爲什麼你使用IB :-)。無論哪種方式,即使首先出現某種東西,這也是次要的。

在此先感謝您的任何建議。

回答

0

如果你從UITableViewController繼承,你的視圖應該是一個UITableView而不是一個普通的UIView,那麼當你想以編程的方式創建一個視圖時,你應該分配它,初始化它,設置它的屬性並將它作爲控制器的視圖,我之前沒有嘗試[super loadView],但是它爲您創建tableView並將dataSource和delegate分配給self,所以您不必這樣做。所以它應該像有關視圖層次建立這一

- (void)loadView { 
    UITableView *tempPointer = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 480) andStyle:UITableViewStylePlain]; 
    self.view = tempPointer; // controller retains view property so we should release it 
    [tempPointer release]; 
    // If you want your view to be resized automatically (to fit) 
    self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 
    self.tableView.dataSource = self; 
    self.tableView.delegate = self; 
    //... 
} 

- (void)loadView { 
    [super loadView]; 
    self.tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 
    secondTableView = self.tableView; // or change your code to cope with self.tableView instead of secondTableView... 
    //... 
} 

清除出一定的不確定性,保留等有關雙方的UIViewController和UITableViewController中的文檔中,如果你還沒有準備好。

+0

謝謝!我不知道'autoresizingMask'也很有用。 – rpheath 2010-11-10 13:57:11

0

你嘗試過:

[Self.navigationController pushViewController:secondTableView]; 

希望這會有所幫助,如果不是你可以給多一點的描述的情況。

+0

謝謝,我最終弄明白了,這是一個完全無關的問題。很難相信...我正在解析XML來填充第二個表格,並且我已經在我重寫的方法中將didStartElement作爲參數,而不是didEndElement!可笑......雖然謝謝! – rpheath 2010-11-07 07:20:57

+0

很高興你把它分類。 – Blounty 2010-11-07 08:21:32

相關問題