これは、カメラのモーダルビューを提供するクラスです
@interface ViewController : UIViewController <UIImagePickerControllerDelegate> {
UIImagePickerController *cameraView; // camera modal view
BOOL isCameraLoaded;
}
@property (nonatomic, retain) UIImagePickerController *cameraView;
- (IBAction)cameraViewbuttonPressed;
- (void)doSomething;
@end
@implementation ViewController
@synthesize cameraView;
- (void)viewDidLoad {
cameraView = [[UIImagePickerController alloc] init];
cameraView.sourceType = UIImagePickerControllerSourceTypeCamera;
cameraView.cameraOverlayView = cameraOverlayView;
cameraView.delegate = self;
cameraView.allowsEditing = NO;
cameraView.showsCameraControls = NO;
}
- (IBAction)cameraViewbuttonPressed {
[self presentModalViewController:cameraView animated:YES];
isCameraLoaded = YES;
}
- (void)doSomething {
[cameraView takePicture];
if ([cameraView isCameraLoaded]) printf("camera view is laoded");
else {
printf("camera view is NOT loaded");
}
}
- (void)dealloc {
[cameraView release];
[super dealloc];
}
@end
実行中のアプリ デリゲートで、doSomething を呼び出します。
ViewController *actions = [[ViewController alloc] init];
[actions doSomething];
[actions release];
カメラ ボタンを押した後、cameraview が読み込まれます アプリ デリゲートで dosomething を呼び出しますが、何も起こらず、「カメラ ビューが読み込まれていません」を返す BOOL に対して null が返されます。
クラスでdoSomething を呼び出すと正常にViewController
動作しますが、別のクラスからは動作しません。
ViewController
クラス内の変数にアクセスするにはどうすればよいですか?