0

私のアプリには2つのクラスがありUIViewControllerます。これFirstViewControllerは、このメソッドを持つビューであり、コントローラーのビューにuitableviewを追加します。

 -(IBAction)SetTabState:(id)sender{
    if (sender == History) {
            [self.view  addSubview:HistoryView];
    }
}

さて、SecondViewControllerクラスでは、戻るための2つのオプションがあります。戻るための最初のオプションは、単に戻ることです。これは正常に機能します。

[self dismissModalViewControllerAnimated:YES];

戻ってSeconedViewControllerからビューの履歴を表示する2番目のオプションなので、次のようなものを試しています。

[self dismissModalViewControllerAnimated:YES];
FirstViewController *Vc = [[FirstViewController alloc]init];
[Vc SetTabState:Vc.History];

本当は、クラスからメソッドを起動することUIViewControllerは、私が理解したことのないことでした。

4

1 に答える 1

1

モーダルを閉じる前に、情報を渡す必要があります。このようなもの:

SecondViewController.m:
- (IBAction) secondButtonTouched:(UIButton)button {
  FirstViewController *fVC = (FirstViewController *)self.presentingViewController;
  [fVC SetTabState:History];
  [fVC dismissModalViewControllerAnimated:YES];
}

FirstViewController新しいものを作成するのではなく、既存のへの参照を取得する必要があります。

presentingViewController注:がタイプであると想定するのではなく、SecondVCの弱参照(またはデリゲート/プロトコル)を渡してFirstVCへの参照を取得する必要がありFirstViewControllerます。私は自分のコードを単純化するためにそれをしました。

于 2012-11-08T20:24:36.817 に答える