2011-08-02 21 views
0

我有2個類:A類有一個聲明的協議,我在類B中調用。我使用委託在類A中發送圖像到類B,並在類B中使用此方法在此方法下執行某些操作然後我想在這個協議的方法B類的內部結束新的視圖。我知道調用新視圖的2行是工作的,因爲如果我在類A中調用它(例如在viewDidLoad),那麼它是加工。新視圖在這種情況下顯示我想要的一切。但是,當我從協議的方法調用它不起作用。如何顯示這個視圖?顯示委託方法的另一個視角

類A.H

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

類時三十分

[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被調用時,我看到的NSLog,我有內部viewDidLoad中存在。然而,iphone屏幕上並沒有顯示任何內容,可能新視圖在舊視圖之下。 如何在舊視圖的頂部設置新視圖..?

感謝所有幫助^^

回答

0

我沒有找到什麼好的方法來做到這一點,但是當我添加導航控制器,取而代之的:

[self presentModalViewController:dvController animated:YES]; 

使用:

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

應用程序運行良好。這不是一個解決方案,而是一種省略這個問題的方法。