gpt4 book ai didi

ios - 无法与添加到 Window 的 UIView 交互

转载 作者:行者123 更新时间:2023-11-30 10:24:10 26 4
gpt4 key购买 nike

我正在使用以下 Objective-C 代码向窗口添加 View :

  // Main Storyboard
UIStoryboard *mainStoryBoard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];

// View controller with the view to add
UIViewController *vc = [mainStoryBoard instantiateViewControllerWithIdentifier:@"SomeViewController"];

// Find the topmost window
UIWindow *topWindow = [[[UIApplication sharedApplication].windows sortedArrayUsingComparator:^NSComparisonResult(UIWindow *win1, UIWindow *win2) {
return win1.windowLevel < win2.windowLevel || !win1.isOpaque;
}] lastObject];

// Add the view to the window
[topWindow addSubview:vc.view];

这工作得很好,我在 SomeViewController 中使用这个 Swift 方法来离开 View 也是如此:

// Get topmost window (Should be UIWindow)
let topWindow = UIApplication.shared.windows.sorted {
(win1, win2) in
return win1.windowLevel < win2.windowLevel || !win1.isOpaque
}.last

// Force view to prepare to disappear
self.viewWillDisappear(true)

// Send the view to the back
topWindow?.sendSubviewToBack(view)

这是 Objective-C 代码运行后我的 View 结构。所选 View 是已添加的 View :

Screenshot of view hierarchy

问题是新 View 中的所有按钮都不起作用,因此我无法触发上述关闭方法。我尝试过使用 Storyboard添加的按钮和以编程方式添加的按钮。从视觉上看,按钮在点击时会使用react,但不会触发任何东西。

最佳答案

我最终通过完全交换 Root View Controller 而不是简单地将其 View 添加为 subview 来解决问题。问题在于@DonMag 指出我添加的 subview 没有 View Controller 。我发现this question关于交换 Root View Controller 并将其用作我的更改的基础。如果有人想提供不需要交换 Root View Controller 的完整解决方案,我会接受。

关于ios - 无法与添加到 Window 的 UIView 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60168852/

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