【发布时间】:2011-08-02 09:13:37
【问题描述】:
我有 2 个类:A 类有一个声明的协议,我在 B 类中调用它。我使用委托将图像从 A 类发送到 B 类,并在 B 类中根据 A 类的协议方法处理该图像。然后我想在 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 屏幕上没有显示任何内容,可能新视图在旧视图的“下方”。 如何在旧视图的顶部设置新视图..?
感谢您的帮助^^
【问题讨论】:
标签: objective-c view delegates uiimageview protocols