0

少なくとも基本的な問題だと思います。プログラムでビューを操作し始めたところです。

RouteCaptureViewController.hの場合:

@property (strong, nonatomic) IBOutlet UIView *routeCaptureSuperView;

@property(nonatomic, weak) IBOutlet UIImageView *captureImageView;
@property(nonatomic, retain) IBOutlet UIImageView *previewImageView;
@property (weak, nonatomic) IBOutlet UIView *captureRouteButtonView;

私のストーリーボード:

ここに画像の説明を入力してください

すべてのコンセントが正しく接続されていることを確認しました。

私はそのようなメソッドにaddSubviewを実装していますが、何も起こりません。

  [self.routeCaptureSuperView addSubview:self.captureRouteButtonView];
  [self.routeCaptureSuperView addSubview:self.captureImageView];

次の行は、以前はコードで機能していました。

[self.captureImageView removeFromSuperview];
[self.captureRouteButtonView removeFromSuperview];

そして私はNSLogからでself.routeCaptureSuperViewはないことを知っています。nil

4

1 に答える 1

1

私があなたを正しく理解し、後でそれらを再び追加するためにビューを削除した場合、私は知識に基づいた推測をすることができます:

ビューに送信した瞬間に、それらはのみremoveFromSuperviewとして宣言されているため、割り当てが解除されますweak
弱いとは、オブジェクトとの最後の強い関係が解放されるため、オブジェクトの割り当てが解除された場合にプロパティがゼロになることを意味します。

親ビューは、これら2つのビューとの最後の強力な関係を維持するオブジェクトです。

2つのサブビューの宣言でに変更weakしてみてください。strong@property

于 2013-01-18T21:45:59.470 に答える