みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Objective-C,viewが動作しない

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

投稿日時 - 2011-03-27 16:53:20

QNo.6624754

すぐに回答ほしいです

質問者が選んだベストアンサー

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

投稿日時 - 2011-03-28 14:07:20

お礼

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

投稿日時 - 2011-03-31 16:44:43

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

- (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を宣言している意味がありません。

投稿日時 - 2011-03-28 12:28:37

あなたにオススメの質問