Xcode 6にアップグレードした後、古いプロジェクト(サブプロジェクトを含むため、多くのターゲットがあります)を開きましたが、ストーリーボードViewContollerから関連オブジェクトへのリンクが機能しないことに気付きました。
たとえば、内部にTableViewを備えたViewControllerがあり、接続が欠落しているため、それで何もできず、VCで新しいIBOutletを再定義することもできませんVCからのストーリーボードの矢印は何にも接続しません。
より明確にするために:
クラスは[カスタムクラス]セクションで定義されているため、問題は見つかりません。
私は何をすべきか?ところで私はSwiftではなくobj-cを使用していますが、Swiftに関するすべての関連する答えを見つけました。
親ビューとカスタムクラスの間のリンクが壊れている(もう表示されていない)こともわかります。これは大きな問題です。
私が実際に作業しているアプリでまったく同じ問題があり、XCodeを5.xxxから6.1に更新しました。私のために働いた回避策は、すべてのView Controllerの参照を削除し、プロジェクトに再追加することでした...
その問題に直面しているすべての人に、ここに(迷惑な)トリックがあります:
私はそれらの事が本当にうっとうしいかもしれないことを理解することができます、しかしそれは私のために働いた...それが他の誰かを助けることを望みます!
ストーリーボード階層で、View Controllerを選択し、
右ペインの[カスタムクラス]セクションClass
で、ドロップダウンと目的のView Controllerを選択します。
新しいビューに最初のアウトレットを追加しようとすると、Xcode 6.1.1で同様の動作を経験しました。
上記のように参照を削除し、ファイルを再度追加しようとしましたが、成功しませんでした。
うまくいったのは、新しいビューに最初のプロパティを手書きで書いたことです。私はちょうど入った:
@property NSString *temp;
その後、通常の方法でコンセントを接続できました。最初のアウトレットを追加したら、一時プロパティを削除するだけです。
お役に立てれば。
最初にアウトレットを入力するようです(Swift):
@IBOutlet weak var someViewOutlet: UIView!
次に、IBからアウトレットを上記のコードの一番右のタイプにドラッグします。
Xcodeを再起動すると、問題が解決する場合があります。 Xcode 6.1を使用する
私が助けられるかもしれない私の場合、問題はviewController.SwiftファイルがStoryBoardに接続されていないことでした。解決策は、3つのアイコン(View Controller、First Responder、Exit)の横のストーリーボードのビューの上部の境界をクリックすることです...カスタムView Controller。
お役に立てれば。 Xcodeは難しい!!
ここに私が信じる適切な解決策があります。
コードでコントローラーの名前を変更した場合は、.xibファイルを更新する必要があります。
インターフェースビルダーでそれを行う方法を見つけることができなかったので、これを行います:
テキストエディターで.xibファイルを開きます。ファイルを右クリックし、[開く]>ソースコード
<objects>
ノードで、プロパティ<placeholder>
を持つplaceholderIdentifier="IBFilesOwner"
ノードを見つけ、customClass="MyOldControllerName"
の値を新しいコントローラー名に置き換えます:customClass="MyNewControllerName"
そして、すべてのIBOutletsが再び正常に機能します。
コメントしたすべての人に感謝します。
Xcode 6/6.0.1のバグです。 6.1バージョンをダウンロードしてインストールすると、問題はなくなりました。
Xcode 6.3では、Xcodeを閉じてMacを再起動する必要がありました。 Xcodeを単独で再起動しても、私にとってはうまくいきませんでした。
私は6.3を長い間持っていて、私の問題はいくつかのことをテストするために作成していた新しいプロジェクトにありました。今回は間違いなくアップグレードの問題ではありません。
同じ問題を解決するソリューションはありません...しかし、私は次のように解決しました:
そして、コンセントが再び戻ってきます
この解決策が同じ問題を抱えている人々にとって正しいものであることを願っています
さて、モジュール名がない場合は確認しましょう。
2.別のフィールドで外でクリック。モジュールフィールドに戻ると、何も表示されない場合がありますが、プロジェクト名のドロップダウンメニューエントリが表示されます。
まだ問題がある場合は、写真を投稿します。
ワークスペースの問題のようです。ワークスペースからプロジェクトを削除して、もう一度追加してみてください。それは私の場合に役立ちました。
Xcode 6.3を使用していますが、同様の問題が発生しました。最後に、.hファイルのいくつかの編集で問題が解決しました。インターフェースにIBOutletが定義されている場合
@interface NavigationViewController :UIViewController
{
IBOutlet UILabel *lblName;
}
これを.mファイルに変更し、@ synthesize lblNameを追加します。
@interface NavigationViewController :UIViewController
{
__weak UILabel *lblName;
}
@property (nonatomic, weak) IBOutlet UILabel *lblName;
私はこれと同じ問題を抱えていましたが、リンクするビューアウトレットはありませんでした。私が修正できた唯一の方法は、XIBファイルの所有者クラスを「UIViewController」に変更し、リンクを作成してから、目的のカスタムView Controllerクラスに戻すことでした。リンクは維持され、すべてが順調でした。
(スクリーンショットの)ストーリーボードのメニューからアウトレットを削除して、要素からもう一度ドラッグしてみてください。
私はこれと同じ問題を抱えていました。
View Controllerのクラスとファイル名を変更したことがわかりました。ストーリーボードでは、右ペインの[カスタムクラス]-> [クラス]に古い値がありました。そのため、欠落しているクラスには何もなかったため、IBOutletsは整列しませんでした。これは、定義されたアウトレットを見つけることを期待していた場所です。
右ペインの[カスタムクラス]フィールドにView Controllerの正しいクラス名を入力すると、問題が修正されました。
カスタムクラスフィールドに間違ったクラス名がある場合、XCodeはより詳細である必要があります。
私はこれを持っていて、私のマシン上のすべてのプロジェクトに影響を与えましたSwift and Objective Cそして長年私を怒らせました。また、クラスの名前を変更するためにリフレクターを使用できないことに気付きました。
私にとっての修正は:
見つける。 -name 'xcuserdata' -exec rm -rf {} \;
手作業で行う場合は、すべてのプロジェクトで次を実行してください。xcodeproj/project.xcworkspace/xcuserdataを削除します。xcodeproj/xcuserdata/.xcuserdatadを削除します
すべてが生き返った!