4

ナビゲーションコントローラーをストーリーボードにドラッグすると、ナビゲーションコントローラーとテーブルビューコントローラーが表示されます。テーブルビューが必要ないので、テーブルビューを削除し、通常のビューコントローラを挿入し、そのクラスをたとえばLoginViewに変更し、右クリックして[Relationship RootViewController]をNavigationControllerからViewControllerにドラッグします。

これで、アプリケーションを実行すると、次のようになります。

Application windows are expected to have a root view controller at the end of application launch

これをプログラムで修正したくありません。前回これを行ったときは、箱から出してすぐに機能しました(xcode 4.2、現在は4.3にアップグレードしました)。また、4.2でNavigation Controllerを追加すると、TableViewControllerではなくViewControllerが付属していました。

ナビゲーションコントローラーには、「初期ビューコントローラー」が設定されています。

4

6 に答える 6

8

逆にやってみてください。

  • ナビゲーションコントローラーを削除します
  • メニューの[エディタ]>[埋め込み]>[ナビゲーションコントローラ]で、永続的なViewControllerを選択します
  • ナビゲーションコントローラーで[初期ビューコントローラー]が選択されているかどうかを確認します
  • AppDelegateで、applicationDidFinishメソッドに不要なコードが配置されていないかどうかを確認します(カスタムコードを配置しなかった場合は空にする必要があります)
  • ビューコントローラにメソッドが含まれているかどうかを確認-(void)loadViewし、起動時に黒い画面が表示されないようにメソッドを削除します

それが役に立てば幸い。

于 2012-07-17T09:57:53.350 に答える
6

Xcode 8の場合:

  1. 右クリックして、NavigationControllerからViewControllerにドラッグします。
  2. ポップアップの[RelationshipSegue]セクションでルートビューコントローラを選択します。
于 2016-11-26T15:06:03.247 に答える
4

これは古い投稿ですが、まだこの問題が発生している投稿です。

  • xibでは、ViewControllerとウィンドウが必要です。
  • ウィンドウを選択し、「接続インスペクター」に移動します
  • rootViewControllerをViewControllerに接続します

これはうまくいくはずです、私にとってはうまくいきました。

于 2012-12-17T01:56:11.167 に答える
2
  1. InterfaceBuilderでViewControllerを選択します
  2. 属性インスペクターを開く
  3. 「初期ビューコントローラ」チェックボックスを設定します
于 2014-09-06T14:30:36.437 に答える
0

問題はAppDelegate.mにあります:-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

もちろん、返品以外はすべてコメントアウトしてください。空のアプリケーションを作成すると、このコードが挿入され、ストーリーボードのルートViewControllerで行った最初のViewControllerチェックに干渉します。また、プロジェクトターゲット内で、info.plistにストーリーボードがメインストーリーボードとして表示されていることを確認してください。最後に、ストーリーボードビュー内で最初のViewControllerがチェックされていることを確認します。ビューコントローラを選択し、その属性を確認します。その小さなボックスをチェックしてください。

于 2013-06-10T21:17:23.460 に答える
-1

私の解決策は、「空」ではなく「シングルビュー」で新しいプロジェクトを開始することでした。

于 2012-08-09T09:01:02.397 に答える