0

ファイル編成

私のプロジェクトでは、アプリは ViewController で起動し、サブビューとして追加することでテーブル (Table クラス) 内に読み込まれます (ViewController.h - [self.view addSubview: Table.tableView];)

Camera Class は詳細ビューなので、表の行をタップすると、Camara.xib が読み込まれます。ここまではすべて正常に動作します。

問題は、Camera.xib を閉じて ViewController.xib に戻ろうとすると発生します。Camera.xib は問題なく閉じますが、Table.xib を含む ViewController.xib に戻る代わりに、アプリはテーブルのみを読み込みます。 .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];
}

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.

}

4

1 に答える 1

1

この問題が発生する理由は、テーブル ビューが最初のビューの上に追加され、それらが別の VC であるためです。

View Controller をスタック上のトレイとして想像してください。アプリのナビゲートを進めながら、トレイを追加および削除します。

最初の VC とテーブルビューに別々のビュー コントローラーを用意することはお勧めしませんが、代わりにテーブルビューを最初の VC に追加します。スタックを構築する方法により、tableView と最初の VC を常に一緒に表示したいように見えますが、それらが別々の ViewController である場合は発生しません。

より多くのコードが必要になる場合がありますが、tableView を最初の VC に追加します。そうすれば、何が起こっても、それらは常に一緒に表示されます。そうしないと、アプリが思い通りに動作しません。

それらを組み合わせれば、あなたの問題は解決されます。

于 2013-08-28T18:47:10.807 に答える