gpt4 book ai didi

ios - 从另一个类向当前 View Controller 添加 View

转载 作者:行者123 更新时间:2023-11-29 13:00:58 25 4
gpt4 key购买 nike

我有一个名为 MainViewController 的 UIViewController。我还有一个名为 ViewMaker 的类。 在 ViewMaker 类中,我有一个函数如下。

 -(UIView *)GetContentView
{
UIView *return_view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 500, 500)];

UIButton *done_button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
done_button.frame = CGRectMake(300, 300, 100, 50);
[done_button setTitle:@"Done" forState:UIControlStateNormal];
[return_view addSubview:done_button];
return return_view;
}

实际上我会在上面的函数中添加更多 View ,例如 TextView 、标签等。

在 MainViewController 类中,我按如下方式调用上述方法。

 -(void)CreateViews
{
UIView *content_view = [[[ViewMaker alloc] init] GetContentView];
[self.view addSubview:content_view];
}

现在我从 MainViewController 类添加了一个带有完成按钮的 View (以及其他组件,如 TextView 、标签等)。我的问题是为完成按钮添加目标函数。当我单击完成按钮时,我想根据从 ViewMaker 类返回的 View 中的数据在 MainViewController 中执行一些操作(如添加一些 View )。我怎样才能做到这一点?提前致谢。

最佳答案

我假设您的 ViewMaker 类与 PopupContentMaker 相同,

将此添加到您的完成按钮:

[done_button addTarget:self action:@selector(doSomething) forControlEvents:UIControlEventTouchUpInside];

在 PopupContenMaker 中:

- (void)doSomething{
if ([self.delegate respondsToSelector:@selector(handleDoneButtonTap)]) {
[self.delegate performSelector:@selector(handleDoneButtonTap) withObject:self];
}

}

在您的 PopupContentMaker 中声明一个委托(delegate)属性,并使 MainViewController 成为委托(delegate),

-(void)GetContentView
{
PopContentMaker *pcm = [[PopupContentMaker alloc] init];

pcm.delegate = self;

[self.view addSubview:[pcm GetContentView]];

}

-(void)handleDoneButtonTap{
//Do action after done button
}

关于ios - 从另一个类向当前 View Controller 添加 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19773784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com