web-dev-qa-db-ja.com

既存のプロジェクトにストーリーボードを追加する

ストーリーボードのサポートなしでプロジェクトを作成しましたが、後でストーリーボードを追加しました。ストーリーボードはうまく機能し、エミュレータにアプリをロードすると、コンテンツが表示されます。

次に、ビューコントローラー(UIViewController)を作成しました。問題は、ストーリーボードからコントローラーにコントロールをバインドできないことです。

だから私の質問は、コントローラーをストーリーボードに接続する方法です。

22
glebreutov

これらの正確な手順(私はXCode 4.5とiOS 6.0を使用しています):

  1. ファイル->新規作成->ファイル...->ユーザーインターフェース->ストーリーボードでプロジェクトに新しいストーリーボードを追加します
  2. プロジェクトの概要に移動し、MainStoryboardを選択して、作成したストーリーボード名を選択します。
  3. メソッドdidFinishLaunchingWithOptionsのAppDelegate.mファイルから、YESを返す最後のステートメントを除くすべてをコメント化します。

以上です。プロジェクトを起動すると、初期ビューが表示されます。

38
OSXMonk

XCode 6およびiOS8 beta2の場合:

  1. Storyboardファイルを作成します(Main.storyboardという名前にします)。デバイスタイプとしてiPhoneまたはiPadを選択します。
  2. 空のMain.storyboardファイルに、オブジェクトライブラリからUIViewControllerをドラッグします。
  3. ストーリーボードをユニバーサルストーリーボードとして使用する場合は、ファイルインスペクター(右側の[ユーティリティ]セクションにあります)に切り替えて、[サイズクラスを使用]をオンにします。
  4. ストーリーボードでView Controllerを選択し、(右側のユーティリティセクションにある)Identity Inspectorに切り替え、[Class]フィールドにView Controllerの名前を入力します。
  5. ナビゲーターセクションの左側の「Supporting Files」フォルダーで「info.plist」ファイルを見つけます。
  6. 「情報プロパティリスト」キーの右側にある「+」記号をクリックして行を追加します。
  7. 「メインストーリーボードファイルのベース名」キーを選択し、「値」フィールドにストーリーボードファイルの名前を入力します(この場合は「メイン」と呼ばれます)。
  8. AppDelegate.m/AppDelegate.Swiftのmethod/funcの「application:didFinishLaunchingWithOptions:」で、「return YES」(Objective-Cの場合)、またはSwiftの「return true」を除くすべてのコードを削除します。
25
Raz

自分の質問に対する答えを見つけました。それは非常に簡単です:ストーリーボードを開き、ビューコントローラー(ストーリーボード上の視覚的表現)を選択し、IDインスペクターに移動して、クラスUIViewControllerをコントローラークラスに置き換えます。

9
glebreutov

接続するコントロールに、対応するIBOutletまたはIBActionがコントローラーにあるかどうかを確認しましたか?その後、通常どおりに接続できるはずです。

1
  1. Main.storyboardを追加

  2. Info.plist>メインストーリーボードファイルのベース名に行を追加:メイン

  3. コードを編集:

  • (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {//アプリケーションの起動後にカスタマイズするためのポイントをオーバーライドします。 YESを返します。 }
1
Alexander

Main.mを確認することを忘れないでください:

#import <UIKit/UIKit.h>
#import "YourAppDelegate.h"

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([YourAppDelegate class]));
    }
}
0
Valeriy Kliuk