2013-08-28 52 views
0

File Organization錯誤解僱一個UIViewController作爲工作的tableViewCell

在我的項目應用中的ViewController,它加載一個表(表類)內啓動一個詳細視圖可以將其作爲一個子視圖(ViewController.h - [self.view addSubview:Table.tableView];)

Camera Class是詳細視圖,所以當你點擊一個表格行時,它會加載Camara.xib。直到這裏一切正常。

問題是當我嘗試關閉Camera.xib並返回ViewController.xib時,當我這樣做時Camera.xib解散沒問題,但不是回到ViewController.xib內部的Table.xib,應用程序只加載Table.xib,因此放置在ViewController.xib視圖中的其餘對象不顯示。

我在做什麼錯?

在此先感謝!

CODE:

Table.m

- (void)viewDidLoad 
{ 

    roomsArray = [[NSMutableArray alloc] initWithObjects:nil]; 
    [super viewDidLoad]; 

} 


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // my code... 

    Camara *camara = [[Camara alloc] initWithNibName:@"Camara" bundle:nil]; 
    [self presentViewController:camara animated:YES completion:nil]; 

} 

Camara.m

-(IBAction)cancel:(id)sender { 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

ViewController.m

- (void)viewDidLoad 
{ 

    table = [[Table alloc] initWithNibName:@"Table" bundle:nil]; 

    [windows.tableView reloadData]; 
    [self.view addSubview:windows.tableView]; 
    windows.tableView.transform = CGAffineTransformMakeTranslation(0, 44); 

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

}

+0

爲什麼你有單獨的視圖和表xibs?你爲什麼不把它們合併成一個單一的視圖? – CaptJak

+0

@CaptJak我會做到這一點,但它做太多的工作做哈哈哈,但是如果你認爲這是問題,我會結合他們 – yeker3

+0

生活中的美好事物不是來自懶惰;)我不是說它是你正在尋求解決的**精確**問題的解決方案(意思是解決問題但保留兩個筆尖)。但將它們合併是更好的做法,我相當肯定它會解決您所遇到的問題。 – CaptJak

回答

1

您遇到此問題的原因是因爲表視圖被添加到第一個視圖頂部,並且它們是單獨的VC。

將視圖控制器視爲堆棧中的托盤。在您瀏覽應用時,您可以添加和移除紙盒。

我不會建議爲第一個VC和tableview分別使用View Controller,而是將tableview添加到第一個VC中。您構建堆棧的方式使您看起來像總是將tableView和第一個VC一起顯示,如果它們是單獨的ViewController,則不會發生這種情況。

它可能需要更多的代碼,但將tableView添加到第一個VC。這樣,無論發生什麼事情,他們總是會一起展示的。否則,你的應用程序將無法按照你想要的方式工作。

合併它們,你的問題就解決了。

+0

不敢相信它解決了這個問題,我會盡量不要懶惰hahahaha:P百萬thx! – yeker3