2011-08-02 6 views
0

私は2つのクラスを持っています:クラスAはクラスBで呼び出す宣言されたプロトコルを持っています。私はクラスAからクラスBにデリゲートを使ってイメージを送り、クラスBではメソッドクラスBの中でこのプロトコルのメソッドの最後に新しいビューを作成したいと思います。新しいビューを呼び出す2行が動作しています。これは、クラスA(viewDidLoadなど)で呼び出すとうまくいくためです。ワーキング。この場合、新しいビューはすべて私が望むものです。しかし、私はプロトコルのメソッドから呼び出すときは動作していません。このビューを表示するには?デリゲートメソッドから別のビューを表示

クラスA.h

@protocol AViewControllerDelegate<NSObject> 
@optional 
- (void) tappedImage:(NSNumber*)tag; 
@end 

クラスA.M

[self dismissModalViewControllerAnimated:YES]; 
if ([self.delegatee respondsToSelector:@selector(tappedImage:)]) 
    [self.delegatee performSelector:@selector(tappedImage:) withObject: [NSNumber numberWithInt:imageView.tag]]; 

クラスB.m

- (void) tappedImage:(NSNumber*)tag{ 
UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed: [NSString stringWithFormat: @"%@.png",tag]]]; 

PictureEditingViewController *dvController = [[PictureEditingViewController alloc] initWithPicture: imgView.image]; 
[self presentModalViewController:dvController animated:YES]; 
//[dvController release]; dvController = nil; 
} 

PictureEditingViewControllerが呼ばれ、私はそこのviewDidLoad内で持っているのNSLogを参照してください。しかし、何もiphoneの画面に表示されていない、おそらく新しいビューは古いビューの下にあります。 古いビューの上に新しいビューを設定する方法..?任意の助け

感謝^^

答えて

0

私は私がナビゲーションコントローラを追加したがとき、それを行うには、何か良い方法を見つけて、代わりにしませんでした:

使用
[self presentModalViewController:dvController animated:YES]; 

[self.navigationController pushViewController:pictureEditingVC animated:YES]; 

アプリケーションは正常に動作していました。これは解決策ではなく、この問題を回避する方法です。

関連する問題