0

アプリケーションでストーリーボードを使用しようとしています。最初から2番目に移動するためのボタンを備えた2つのView Controllerを追加しました。問題はこの 2 番目のビュー コントローラーにあります。追加したオブジェクトとコードとのリンクが機能しません。ビュー コントローラー コードにブレークポイントを設定すると、「self.property」は nil に設定されますが、ストーリーボードによってインスタンス化される必要があります。

私は何時間も答えを探していましたが、残りはすべて良いように見えるので、問題を本当に理解していません。

オブジェクトをコードに直接リンクしてプロパティを自動的に作成するために、コードにプロパティを記述しようとしましたが (strong/nonatomic、nonatomic/retain、さらにはweak/nonatomic)、「nil」以外は取得しませんでした。 " ブレークポイント付き。

viewController.h:

@interface NMLoadingViewController : UIViewController
{
    __weak IBOutlet UIProgressView *imageProcessingProgressView;
}
@property (weak, nonatomic) IBOutlet UIProgressView *imageProcessingProgressView;

@end

.m:

@synthesize imageProcessingProgressView;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    // Custom initialization
    NSLog(@"INIT.");
}

(無関係なコードの他の行を除いて)

ブレークポイントを「INIT」に設定した場合。行、私のimageProcessingProgressViewはnilです。その理由はわかりませんが、細部を見逃していると思います...

(UILabel などの他のオブジェクトでこれを試してみましたが、どちらも機能しなかったことに注意してください。見知らぬ人、2 つのオブジェクトがあったとき、そのうちの 1 つは nil ではないアドレスを持っていましたが、それでも破損していて表示されませんでした適切なオブジェクトです。)

編集:それは何の役にも立ちませんでした...問題はXCodeの変数ビューに関するもので、ログには正しいオブジェクトが表示されますが、変数は「nil」に表示されます...

4

3 に答える 3

1

これを削除...

{
    __weak IBOutlet UIProgressView *imageProcessingProgressView;
}

...そしてプロパティを強くします。

ログメッセージを...に変更します

NSLog(@"INIT: %@", self.imageProcessingProgressView);

...そして、まだ問題があるかどうかを確認します。そうした場合は、ストーリーボードの接続をもう一度見てください。

于 2012-06-07T16:25:37.010 に答える
1

NMLoadingViewControllerあなたのviewControllerのクラスであることを確認してください

于 2012-06-07T16:17:33.357 に答える
0

それが本当の問題だと私は信じているので、最初に@Ericによる答えを試してください。

また、実際に Interface Builder を使用してコントロールを View Controller にフックしていることを確認してください。これを行うには、コントロールからビュー コントローラーのプロパティに線をドラッグします。

于 2012-06-07T16:20:18.270 に答える