0

文件组织

在我的项目中,应用程序在 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 视图中的其余对象不会显示。

我究竟做错了什么?

提前致谢!!

代码:

表.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];

}

卡马拉.m

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

视图控制器.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.

}

4

1 回答 1

1

您遇到此问题的原因是因为表格视图被添加到第一个视图之上,并且它们是单独的 VC。

将视图控制器想象成堆栈上的托盘。当您在应用程序中进行导航时,您可以添加和删除托盘。

我不建议为第一个 VC 和 tableview 使用单独的视图控制器,而是将 tableview 添加到第一个 VC 中。您构建堆栈的方式使您看起来总是希望同时显示 tableView 和第一个 VC,如果它们是单独的 ViewController,则不会发生这种情况。

可能需要更多代码,但将 tableView 添加到第一个 VC。这样,无论发生什么,它们总是会一起显示。否则,您的应用程序将无法按照您希望的方式运行。

把它们结合起来,你的问题就会迎刃而解。

于 2013-08-28T18:47:10.807 回答