gpt4 book ai didi

ios - 如果不是初始 View Controller ,则将操作发送到第一响应者将不起作用

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

我正在尝试在此处创建类似于 SpringApp 中的代码菜单的滑动菜单(请参阅 CodeViewController):

https://github.com/MengTo/Spring/blob/master/SpringApp

只要 SpringViewController 是初始 View Controller ,它就可以正常工作。

如果我创建另一个 ViewController 并将其设置为初始值,则 minimizeView/maximizeView 永远不会被调用:

UIApplication.sharedApplication().sendAction("minimizeView:", to: nil, from: self, forEvent: nil)

在此方法中,“to:”设置为 nil 以使用第一响应者。所以看起来当 SpringViewController 不再是初始 View Controller 时,它就不再是第一响应者。

如何修复它以使SpringViewController中定义的minimizeView和maximizeView操作始终有效?

最佳答案

我找到了使用通知中心的解决方法。

在SpringViewController中添加:

override func viewDidLoad() {
super.viewDidLoad()

// Add observer in notification center
// It receives notifications from menu
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: "minimizeView:",
name: "minimizeView",
object: nil)
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: "maximizeView:",
name: "maximizeView",
object: nil)
}

在OptionsViewController中:

  override func viewDidAppear(animated: Bool) {
super.viewDidAppear(true)
// skipped ...
// Post notification
NSNotificationCenter.defaultCenter().postNotificationName("minimizeView", object: nil)
}

@IBAction func closeButtonPressed(sender: AnyObject) {
// skipped...
// Post notification
NSNotificationCenter.defaultCenter().postNotificationName("maximizeView", object: nil)
// skipped...
}

这使得最大化 View 和最小化 View 正常工作。我想知道第一响应者的方法是否更好。

关于ios - 如果不是初始 View Controller ,则将操作发送到第一响应者将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30794303/

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