私はiPhoneアプリのインターフェースで働いています。さまざまなビューに繰り返しオブジェクトがあることを認識したので、親 ViewController を作成したいと思います。しかし、子ViewControllerからこの親ViewControllerのプロパティにアクセスしたい場合、いくつかの問題が発生します。具体的には、各ビューに一般的な ProgressView を配置したいのですが、ビューが表示されたときに非表示にしたいです。子ViewControllerからProgressView.hiddenにアクセスしてProgressViewを表示すると、エラーメッセージは表示されませんが、実行中のプログラムでは何も起こりません。
私のコードは次のようになります。
ParentViewController.h:
#import <UIKit/UIKit.h>
@interface ParentViewController : UIViewController{
UIProgressView *progressView;
}
@property (readwrite) UIProgressView *progressView;
@end
ParentViewController.m:
- (void)viewDidLoad
{
CGRect progressViewFrame = CGRectMake(0, 407, 320, 9);
progressView = [[UIProgressView alloc] initWithFrame:progressViewFrame];
progressView.hidden = TRUE;
[self.view addSubview:progressView];
[super viewDidLoad];
}
ChildViewController.h:
#import <UIKit/UIKit.h>
#import "ToolbarViewController.h"
@interface ChildViewController : ParentViewController
@end
ChildViewController.m:
- (void)viewDidLoad
{
progressView.hidden = FALSE;
[super viewDidLoad];
}
このようにすると、ProgressView バーは非表示のままになり、エラーは発生しません。また、viewDidLoad メソッドが呼び出されたかどうかも確認しました。はい、呼び出されます。
あいさつ C4rmel