UIView を別のクラスに渡そうとしています-これはちょっとうまくいきますが、ポインターを保持できません...
私の .h ファイルで、ビューを宣言します。
UIView *someView;
プロパティを追加します
@property (nonatomic, retain) UIView *someView;
そして、.m-ファイルでプロパティを合成します
@synthesize someView;
次に、ビューを設定する方法があります(.hファイルにも設定されています-信じてください:):
-(void)makeViewPointer:(UIView *)myView{
someView = [[UIView alloc] init];
someView = myView;
for(UIView *aView in someView.subviews){
NSLog(@"tag %d", aView.tag);
}
}
これまでのところ、すべてが機能しています。someView をログに記録すると、ポインターが取得され、すべてのサブビューにアクセスできるようになります。
私は別のクラスからこのメソッドを呼び出しています - これはうまくいくようです。
今 - ボタンがクリックされた後にそのビューで何かを行うように IBAction を設定しました
-(IBAction)doSomething:(id)sender{
NSLog(@"show the view %@", someView);
for(UIView *aView in someView.subviews){ // doesn't output anything
NSLog(@"tag %d", aView.tag);
}
}
この時点で、 someView-var は再び空になります - なぜ????
@property (非アトミック、保持) を使用すると、変数が自動的に保持されると思いましたか?
また、初期化時に変数を保持しようとしました:
someView = [[UIView alloc] retain];
動作しません
また
someView = [[UIView alloc] init];
[someView retain];
どちらも機能しません...
いったい私は何を間違っているのですか?
助けてくれてありがとう!