-1

ここに画像の説明を入力

現在、私の StoryBoard は次のようになっています。

X->X->X

私はそれが次のようになりたい:

X->Y->X->X

Y は、一方の端でナビゲーション コントローラーに接続され、もう一方の端で masterviewcontroller に接続され、基本的なセルがそれにプッシュされる単純な Tableview になります。それ以外はアプリで何も変更したくありません。

しかし、そうしようとするとエラーが発生します。

ScaryBugs[1768:11303] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewController setBugs:]: unrecognized selector sent to instance 0x71d0940'

これらの 3 行が何をしているかを完全に理解していないためだと思います。

AppDelegate.m:

UINavigationController * navController = (UINavigationController *) self.window.rootViewController;
MasterViewController * masterController = [navController.viewControllers objectAtIndex:0];
masterController.bugs = bugs;

コードのソース

4

1 に答える 1

0

その 3 行目は、masterController の bugs プロパティを、ローカル変数名 bugs を使用してアプリ デリゲートで作成された配列に割り当てているだけです。最初の 2 行は、ストーリーボードで作成されたコントローラーへの参照を取得しているだけです。

別のコントローラーをナビゲーション コントローラーのルート ビュー コントローラーとして配置すると、参照が台無しになります。追加した後、MasterController はプッシュするまでインスタンス化されないため、bugs プロパティを設定する方法はありません。あなたの新しいコントローラーはそこに属していません。コウモリやサメなどのリストからバグのリストにプッシュするのは、あまり意味がありません。通常、そのプッシュ (特にテーブル ビュー セルからの場合) は、次のような情報を提示することを意味します。タッチしたセルの詳細が表示されます。チュートリアルを拡張しようとしている場合は、アプリの全体的な構造を実際に変更する必要があり、コードにかなりの変更が必要になる可能性があります。

于 2012-12-08T00:35:41.340 に答える