PhotosController.h
#import <uikit/uikit.h>
@class MainController;
@interface PhotosController : UIViewController {
MainController *parent;
}
@property (nonatomic, retain) MainController *parent;
@end
MainController.h
#import <uikit/uikit.h>
@class PhotosController;
@interface MainController : UIViewController {
PhotosController *_photosController;
}
@property (nonatomic, retain) PhotosController *_photosController;
@end
2011年2月28日月曜日
@class
お互いに参照し合うようにヘッダファイルをインポートするとエラーが起きる。ヘッダファイルにはヘッダファイルをインポートせずに、使用する型がクラスであるという事だけを宣言して(@class MainController;)、ソースファイル側にヘッダファイルをインポートする。
ラベル:
iPhone,
Objective-C,
プログラミング
2011年2月27日日曜日
UINavigationControllerとかUIViewControllerのparentViewControllerとか
UIViewControllerを作って、UINavigationControllerのrootViewControllerとして初期化する。
そして、ViewControllerのview.frameをCGRectMakeでサイズを変更すると変更できない。
UINavigationControllerのview.frameをCGRectMakeでリサイズすると変更される。
やっぱNavigationControllerってView全体を入れ替えるための仕組みなんだなぁ。
単なるビューコントローラのサブクラスじゃないんだな。
UIViewControllerのプロパティにparentViewControllerというのがあり、
UINavigationControllerから初期化したときなど呼び出し元のコントローラがセットされる。
(initWithRootViewController:ほげほげなどとした場合。)
カスタムコントローラを親コントローラにしたいのだけど、このプロパティをセットする方法がなぜか見つからない。
とりあえず、親コントローラに設定したいコントローラのポインタを持たせる方法で回避。
そして、ViewControllerのview.frameをCGRectMakeでサイズを変更すると変更できない。
UINavigationControllerのview.frameをCGRectMakeでリサイズすると変更される。
やっぱNavigationControllerってView全体を入れ替えるための仕組みなんだなぁ。
単なるビューコントローラのサブクラスじゃないんだな。
UIViewControllerのプロパティにparentViewControllerというのがあり、
UINavigationControllerから初期化したときなど呼び出し元のコントローラがセットされる。
(initWithRootViewController:ほげほげなどとした場合。)
カスタムコントローラを親コントローラにしたいのだけど、このプロパティをセットする方法がなぜか見つからない。
とりあえず、親コントローラに設定したいコントローラのポインタを持たせる方法で回避。
ラベル:
iPhone,
Objective-C,
プログラミング
2011年2月18日金曜日
2011年2月17日木曜日
UIViewControllerがtouchesに反応しない
viewコントローラの初期化を以下のようにしたら直った。
TestViewController *myController = [[[TestViewController alloc] init]autorelease];
↓変更
TestViewController *myController = [[TestViewController alloc] init];
コントローラを保持していなかったため、解放されていた??
http://akisute.com/2009/10/uiviewcontrollertouchesbegantouchesende.html
autoreleaseはプログラムが終了しなければリリースされないと思っていた??
まだ解らない事多い。
TestViewController *myController = [[[TestViewController alloc] init]autorelease];
↓変更
TestViewController *myController = [[TestViewController alloc] init];
コントローラを保持していなかったため、解放されていた??
http://akisute.com/2009/10/uiviewcontrollertouchesbegantouchesende.html
autoreleaseはプログラムが終了しなければリリースされないと思っていた??
まだ解らない事多い。
登録:
コメント (Atom)
