dポイントプレゼントキャンペーン実施中!

IBを使わないカメラアプリを作っています。
AppDelegate.m内のapplication didFinishLaunchingメソッド内で生成したwindowとviewはコンパイルして表示確認できたのですが、viewControllerで書いたUIImagePickerViewControllerのviewが出てきません。
そもそもviewController.mのloadViewメソッドやviewDidLoadメソッドが動いていません。(メソッド内にNSLogを書いてコンパイルしてもログに出ない)



viewController.h

#import <UIKit/UIKit.h>

@interface CameraViewController : UIViewController <UINavigationControllerDelegate,UIImagePickerControllerDelegate> {
@private
UIImagePickerController* _imagePicker;

}
@property(nonatomic,retain) UIImagePickerController *imagePicker;

@end


viewController.m

#import "CameraViewController.h"

@implementation CameraViewController

@synthesize imagePicker=_imagePicker;

- (void)dealloc
{
[super dealloc];
}


#pragma mark - View lifecycle

- (void)loadView
{
[super loadView];
//UIImagePickerControllerの作成
if(![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
return;
}

UIImagePickerController* imagePicker;
imagePicker = [[UIImagePickerController alloc] init];
[imagePicker autorelease];
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.allowsEditing=NO;
imagePicker.delegate = self;

//imagePickerのviewを最上部に
[self presentModalViewController:imagePicker animated:YES];
//シャッターを切る
[self.imagePicker takePicture];

}

@end


viewControllerが機能しない原因としてそういった可能性が考えられるのでしょうか?
あれこれ調べてみましたが煮詰まっています。よろしくお願いします

A 回答 (2件)

いや、逆にインスタンス変数と、プロパティの宣言のほうがいらないんでしょう。

    • good
    • 0
この回答へのお礼

ご指摘の内容を参考に試行錯誤してみたらできました。
ともかく前提としてインスタンス変数の宣言とインスタンス生成はどちらか一方で良いということですね。ありがとうございました!

お礼日時:2011/03/31 16:44

- (void)loadView


{
[super loadView];
//UIImagePickerControllerの作成
if(![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
return;
}

UIImagePickerController* imagePicker;
imagePicker = [[UIImagePickerController alloc] init];
[imagePicker autorelease];
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.allowsEditing=NO;
imagePicker.delegate = self;

//imagePickerのviewを最上部に
[self presentModalViewController:imagePicker animated:YES];
//シャッターを切る
[self.imagePicker takePicture];

}

この中の9行目、
UIImagePickerController* imagePicker;
を削除してみてください。
この行があると、インスタンス変数で、imagePickerを宣言している意味がありません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!