我有2个类:A类有一个声明的协议,我在B类中调用。我使用委托将图像从A类发送到B类,在B类中使用A类协议方法对该图像进行处理。然后我想在B类内部的方法结束时创建新视图。我知道调用新视图的两行是有效的,因为如果我在类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 :(得分:0)
我没有找到任何好方法,但是当我添加导航控制器而不是:
[self presentModalViewController:dvController animated:YES];
使用:
[self.navigationController pushViewController:pictureEditingVC animated:YES];
应用程序运行良好。它不是解决方案,而是省略此问题的一种方法。