Cocoa(Objective-C) iPad iPhone

[メモ] UINavigationControllerのviewcontrollerを取得

[`evernote` not found]
LINEで送る
Pocket

連投すみません。

UINavigationControllerを使って階層化されたViewを使うときにはUITableViewと組み合わせる事もあると思うのですが、一つ前の画面に戻るときにデータを再読み込みさせたい時の方法が分からなかったのでメモ。

NSArray* naviary = [self.navigationController viewControllers];
    NSInteger current = [naviary count]-1;
    UITableViewController* prev = (UITableViewController*)[naviary objectAtIndex:current-1];
    [prev.tableView reloadData];

navigationControllerがviewControllersという配列で今までのUIViewControllerの参照を保持しているので、一つ前の階層なら最後から一つ前の要素の参照を取得し、reloadDataをすることで現在の画面で変更したデータを反映させた結果を表示する事も可能です。

2 Comments

  1. 通りすがりですみません。
    前の階層のviewでviewWillAppear: でreloadDataしても同じ??

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA