gpt4 book ai didi

ios - 如何使用按钮操作使 UIView 全局化

转载 作者:行者123 更新时间:2023-11-29 02:25:27 26 4
gpt4 key购买 nike

我有一个在导航 Controller 中包含 10 个不同 View Controller 的应用程序。我有 UIView,我将 subview 添加到 sharedApplication 实例的 keyWindow。

                 UIWindow *window = [UIApplication sharedApplication].keyWindow;
UIView *myView = [UIView alloc]initWithFrame:CGRectMake(0,self.view.frame.size.width - 80,80,90)];

[window addSubView:myView];


UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeCustom];

btn1.frame = CGRectMake(xPos, prevVideoUIView.frame.size.height-
[btn1 addTarget:self action:@selector(button1Clicked:) forControlEvents:UIControlEventTouchUpInside];
btn1.hidden = NO;
[myView addSubview:btn1];

UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeCustom];

btn2.frame = CGRectMake(xPos, prevVideoUIView.frame.size.height-
[btn2 addTarget:self action:@selector(button2Clicked:) forControlEvents:UIControlEventTouchUpInside];
btn2.hidden = NO;
[myView addSubview:btn2];

我希望通过应用程序访问 myView,无论我在哪里导航,并且在操作中,用户可以随时将此 View 放在屏幕上。问题是假设用户导航到导航 Controller 的第三级,然后用户从那里在窗口上添加了这个“myView”作为 subview 。然后返回到上一个 View ,然后触摸 myView 上的按钮。应用程序崩溃说访问错误。

请回复此主题。

问候,

段落

最佳答案

每当您在任何 View Controller 中添加所需的 View 时,当该 View Controller 关闭/弹出时,您的 View 也将与该 View Controller 一起释放。这就是收到 Bad Access Exception 的原因。

您可以创建类型为 UIView 的类,并使该类成为Singleton。初始化后,您可以从任何 View Controller 添加或删除 View 。通过使用单例模式,您的 View 将是全局的和静态的。

您还可以在您的 AppDelegate 类中创建您的 View ,并通过在您的任何 View Controller 中获取应用委托(delegate)对象,您可以添加或删除您的 View 。

关于ios - 如何使用按钮操作使 UIView 全局化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27602783/

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