0

2 つのビュー (テンプレートからの標準セットアップ) を持つタブバー コントローラーを作成しました。最初のビューは、dataController オブジェクト内の配列にアクセスしています。タブバーの 2 番目のビューをタップすると、2 番目の viewController の dataController プロパティに dataController 参照が設定されます。

通話を利用します

SecondViewController *vc = [[self storyboard] instantiateViewControllerWithIdentifier:@"SecondViewController"];
vc.dataController = self.dataController;

ただし、secondViewController の dataController プロパティで countArrayObjects を呼び出すと、常に 0 が返されます。配列にオブジェクトが存在するはずなのに、その理由がわかりません。

MainStoryBoard の secondViewController に識別子を設定しましたが、クラッシュはありません。プロパティが設定されていません (と思います)。

テスト目的で、単純なボタンから instantiateViewControllerWithIdentifier を呼び出してから、secondView をタップします。そして、secondViewController の viewDidLoad から countArrayObjects を呼び出します。

何か案は?

4

1 に答える 1

0

うーん...私は同じ問題を抱えていました。現時点では、これを回避する唯一の方法は、ビュー スーパービューが nil であることをテストすることです。これは、クラスのビュー セレクターにアクセスするとビューが起動し、イベントがロードされます...

私たち二人ともここで何か悪いことをしていますが...

これは私が書いたテストコードです...

SummaryViewController *sc = [self.childViewControllers objectAtIndex:0];
if(sc.view.superview == nil) sc.checkInTime.alpha = 0;
//-- by inspecting the value, it will call the viewDidLoad method of the controller.

動作しますが、間違っています。

于 2013-05-23T12:12:51.873 に答える