6

独自の「戻る」ボタンを実装しています。ここonClickで、次のコードがViewController(VC) で実行され、破棄されます。

  1. 現在の VC を破棄 (VC#1)
  2. 現在の VC (VC#1) をカスタムからポップnavigationStack
  3. から最後の VC(VC#2)を取得しnavigationStack

presentViewController

何が起こるかというと、バックワークが視覚的に機能するということです。つまり、現在VCが消え、前VCが表示されます。ただし、viewDidLoadメソッドは呼び出されません。そのため、 からのデータ更新で画面が更新されませんviewDidLoad

 [self dismissCurrentViewController:self completion:^{
    [TWStatus dismiss];
    FHBaseViewController *vcToDisplay = [[FHDataManager sharedInstance] popNavigationStack];
    [vcToDisplay.homeVC presentViewController:vcToDisplay animated:NO completion: ^{ }];
}];

質問:

  1. viewDidLoadを使うと必ず呼ばれる印象を受けましたpresentViuewController??
  2. viewDidLoadVC#2 でのみ呼び出されたメソッドを使用して画面を「ビルド」します。に入ることなくiOSはどのように画面を表示していますviewDidLoadか?

ところで、私はストーリーボードを使用していません。どんな助けでも大歓迎です!

4

2 に答える 2

1

実用的に戻るボタンを作成するときは、次を使用します。

[self.navigationController popViewControllerAnimated:YES];

これにより、viewDidLoad メソッドが呼び出されます。現在のコードの代わりにそれを使用してください。

于 2014-07-28T02:41:18.933 に答える