【发布时间】:2012-09-08 19:22:03
【问题描述】:
我在这里查了很多很接近的答案,没有人能解决我的愚蠢问题..
我的问题是:我有 2 个类,UIViewController classA 和 UIView classB。
一个按钮(classA)触发处理(classB),然后在屏幕上显示子视图(classA)。 但它不起作用。
classA .m:
@implementation ViewController
...
- (IBAction)trigger:(UIButton *)sender {
[classB makeViewOn];
}
classB .h:
#import <UIKit/UIKit.h>
@interface classB : UIView
+ (void)makeViewOn;
@end
classB .m:
#import "classB.h"
#import "ViewController.h"
@implementation classB
+ (void)makeViewOn
{
ViewController *pointer = [ViewController new];
UIWindow *window = pointer.view.window;
classB *overlayView = [[classB alloc] initWithFrame:window.bounds];
overlayView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5f];
overlayView.userInteractionEnabled = YES;
[pointer.view addSubview:overlayView];
}
@end
如果我只在一个类 UIViewController 中执行此操作,它可以正常工作;但是,如果我在两个单独的类(UIViewController 和 UIView)上执行此操作,我该如何解决?
我在类之间通信的基本概念上做错了吗?
非常感谢!
【问题讨论】:
-
单独的 UIView 类需要什么?只需在您的视图控制器中声明一个 UIView 并将其隐藏,当按下按钮时,只需取消隐藏您的视图
-
是的。实际上我只是不想在我的 ViewController 中放入太多代码,而不是将它们分成不同的类。这种方式让我保持清晰和易于修复错误。哈哈..反正我还是个初学者!
标签: iphone xcode uiview uiviewcontroller subview