子视图和按钮

时间:2012-07-31 17:15:23

标签: objective-c ios uiview uiviewcontroller uibutton

我有一个主ViewController:

@interface ViewController : UIViewController

我的ScreenView有一个属性:@property (strong,nonatomic) MUIScreenView* screenView;

它将通过以下方式调用:

- (void)viewDidLoad
{
    [super viewDidLoad];   
    [self.view addSubview:_screenView];
}

现在看看我的MUIScreenViewClass:

@interface MUIScreenView : MUIView

@interface MUIView : UIView

在我的MUIScreenView中我有一个方法:

-(void)addScreenObjectToView
{
   MUIButton *button = [[MUIButton alloc] initWithButtonModel:(ButtonModel*)MUIElement 
   [self addSubview:button];

   UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
   myButton.frame = CGRectMake(10, 220, 300, 40);
   [myButton setTitle:@"This is Standard UIButton!" forState:UIControlStateNormal];
   [myButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
   [self addSubview:myButton];

}

这是我绘制东西的MUIButton方法:

-(void)addButtonToView
{
    UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    myButton.frame = CGRectMake(10, 50, 300, 40);
    [myButton setTitle:@"This is a MUIButton!" forState:UIControlStateNormal];
    [myButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
    [self addSubview:myButton];
}

最后我有:

enter image description here

顶部按钮是否已经死亡怎么可能?如果我触摸它没有任何事情发生。我以同样的方式激动地创造了它。

总结 - 我目前显示为“这是一个MUIButton!”是一个视图包含另一个视图,在第二个视图中我有UIButton。 作为“这是一个标准的UIButton!”是包含UIButton的视图。

1 个答案:

答案 0 :(得分:1)

您需要将对主视图控制器视图的引用传递给子视图,然后将按钮添加到该视图。您无法在其他视图上调用选择器并使用正确的视图接收它。