これは、ユーティリティビューコントローラ用にiPadまたはiPhoneの.xibファイルをロードする必要がある場合と同じ問題です。これはフォームなので、IBOutletsとしてリンクされたUILabel要素とUITextField要素が数多くありました。私はレイアウト全体を構築し、すべての要素をリンクし、構築して実行するまでうまくいった。私はこのスレッドでアドバイスを受け取り、.xibとクラスファイル(IBOutletsを大量にリンクしている)を再作成して成功しませんでした。
問題はこれでした。ルートビューは、クラスの実装では@synthesizedできません。ベースビューを合成すると、すべてが黒くなりました。 "@synthesize view;"を単に削除するだけで、すべてが魅力的に機能しました。私がビューコントローラを提示したとき、すべてが再びそこにあった。ここ
はIBOutletsの全てを持つクラスのヘッダファイルである:ここ
#import <UIKit/UIKit.h>
@interface SignUpFormViewController : UIViewController <UITextFieldDelegate, NSXMLParserDelegate>
@property (strong, nonatomic) IBOutlet UIView *rootView;
@property (weak, nonatomic) IBOutlet UILabel *signUpFormLabel;
@property (weak, nonatomic) IBOutlet UIButton *infoButton;
@property (weak, nonatomic) IBOutlet UILabel *enterEmailLabel;
@property (weak, nonatomic) IBOutlet UITextField *enterEmailTextField;
@property (weak, nonatomic) IBOutlet UILabel *enterPasswordLabel;
@property (weak, nonatomic) IBOutlet UITextField *enterPasswordTextField;
@property (weak, nonatomic) IBOutlet UILabel *reEnterPasswordLabel;
@property (weak, nonatomic) IBOutlet UITextField *reEnterPasswordTextField;
@property (weak, nonatomic) IBOutlet UILabel *enterFirstNameLabel;
@property (weak, nonatomic) IBOutlet UITextField *enterFirstNameTextField;
@property (weak, nonatomic) IBOutlet UILabel *enterLastNameLabel;
@property (weak, nonatomic) IBOutlet UITextField *enterLastNameTextField;
@property (weak, nonatomic) IBOutlet UILabel *enterPhoneNumberLabel;
@property (weak, nonatomic) IBOutlet UITextField *enterPhoneNumberTextField;
@property (weak, nonatomic) IBOutlet UILabel *enterStreetAddressLabel;
@property (weak, nonatomic) IBOutlet UITextField *enterStreetAddressTextField;
@property (weak, nonatomic) IBOutlet UILabel *enterStreetAddress2Label;
@property (weak, nonatomic) IBOutlet UITextField *enterStreetAddress2TextField;
@property (weak, nonatomic) IBOutlet UILabel *enterCityLabel;
@property (weak, nonatomic) IBOutlet UITextField *enterCityTextField;
@property (weak, nonatomic) IBOutlet UILabel *enterStateLabel;
@property (weak, nonatomic) IBOutlet UITextField *enterStateTextField;
@property (weak, nonatomic) IBOutlet UILabel *enterZipLabel;
@property (weak, nonatomic) IBOutlet UITextField *enterZipTextField;
@property (weak, nonatomic) IBOutlet UIButton *backButton;
@property (weak, nonatomic) IBOutlet UIButton *signUpNowButton;
- (IBAction)infoButtonPressed:(id)sender;
- (IBAction)backButtonPressed:(id)sender;
- (IBAction)signUpNowButtonPressed:(id)sender;
@end
が合成されるルートビューの実装ファイルである:
#import "SignUpFormViewController.h"
@implementation SignUpFormViewController
@synthesize rootView,signUpFormLabel,infoButton,enterEmailLabel,enterEmailTextField,enterPasswordLabel,enterPasswordTextField,reEnterPasswordLabel,reEnterPasswordTextField,enterFirstNameLabel,enterFirstNameTextField,enterLastNameLabel,enterLastNameTextField,enterPhoneNumberLabel,enterPhoneNumberTextField,enterStreetAddressLabel,enterStreetAddressTextField,enterStreetAddress2Label,enterStreetAddress2TextField,enterCityLabel,enterCityTextField,enterStateLabel,enterStateTextField,enterZipLabel,enterZipTextField,backButton,signUpNowButton,btnDone,btnPrev,btnNext,inputAccView,activeTextField,currentString;
は単に「rootView」を削除します合成されているプロパティのリストからこの問題を修正する必要があります。 iPadとiPhoneの両方のレイアウトの.xibファイルを削除して再作成する方がずっと簡単です。
FYI私は、ターゲットSDKとXcodeの4.6.3を使用しています= 6.1
私は、これは、この時間がかかり、非常にイライラする問題が発生する他の誰に役立ちます願っています。
DataInputViewController内でloadView関数を実装しましたか? – Niko
XIBファイルでデータ入力ビューコントローラを調べると、そのXIBのルート要素としてUIViewがあると推測されています。ファイルの所有者ビューがそのルート要素に接続されていることを確認します。 (この場合は警告またはエラーが発生すると思っていましたが、間違っている可能性があります。ボタンを押した後にコンソールにエラーや警告が表示されることはありませんか?) –
project> build Phases>バンドルリソースをコピーし、xibがそこにあることを確認してください。 –