0

認証されたユーザーをタブアプリケーション(UITabbarController)に移動させるサインイン画面(UIViewController)を備えたアプリ(ストーリーボードを使用)を開発しています。タブ バー アイテムの 1 つは、UINavigationController を追加した Table View Controller に基づいています。テーブル画面の開発については、iOS 5 パート 2 (Bird Sighting Example) に従っています。このテーブル部分を除いてアプリ全体を正常に作成しました。BirdSighting の例ではルート ビュー コントローラーがサインイン画面であるため、AppDelegate で混乱しています。ほとんどの例で、アプリは Navigation View Controller または Tabbar Controller から開始されます。AppDelegate メソッドを貼り付けています。

これは実行時エラーで、「キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: 'ナビゲーション コントローラーのプッシュはサポートされていません'」というメッセージが表示されます。

これは私のアプリ フロー サインイン画面 -> タブ アプリケーション Tab1 です。詳細Tab2を表示します。チケットの表示(TicketMasterViewController) -> チケットの詳細(TicketDetailViewController)。

AppDelegate のすべてのコントローラーを初期化する必要がありますか? TicketMasterViewController の objectAtIndex は何ですか? 御時間ありがとうございます。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    NavigationViewController *vc4=[[NavigationViewController alloc]init];


    UINavigationController *navigationController=[[UINavigationController alloc]initWithRootViewController:vc4];
    TicketMasterViewController *firstViewController=(TicketMasterViewController *)[[navigationController viewControllers] objectAtIndex:0];
    TicketDataController *aDataController=[[TicketDataController alloc] init];
    firstViewController.dataController=aDataController;  

    // Override point for customization after application launch.
    return YES;
}
4

1 に答える 1

0

上記のコードを削除してみると、アプリが実行される可能性があります。ストーリーボードを使用していて、上記のようにこのView Controller階層を設定していると想定している場合は、このコードは必要ありません。ここにコードを追加する唯一の理由は、データ(MVCのモデル)をViewControllerにアタッチすることです。

于 2012-05-08T03:09:32.150 に答える