在第二个 ViewController 中禁用 closeButton

Posted

技术标签:

【中文标题】在第二个 ViewController 中禁用 closeButton【英文标题】:Disable closeButton in 2nd ViewController 【发布时间】:2017-06-05 11:39:35 【问题描述】:

我试图在我的第二个 ViewController“OptionsVC”中禁用 closeButton

这是我尝试过的:

self.view.window!.standardWindowButton(NSWindowButton.closeButton)!.isHidden = true

做到了,得到了这个: EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0

也试过了

var button = view.window?.standardWindowButton(NSWindowButton.ZoomButton)
button?.isEnabled = false

没有变化

【问题讨论】:

我不明白您是否只有一个窗口并且您尝试在两种不同的情况下启用/禁用关闭按钮,或者如果您有两个窗口并且想要一个带有关闭按钮的窗口一个没有它。你能澄清一下吗? 【参考方案1】:

为了禁用一个按钮,它应该被初始化。因此,您将面临从另一个视图控制器禁用按钮的问题。尝试添加一个布尔值并在 viewDidLoad() 上检查布尔值并决定启用或禁用该按钮。

【讨论】:

【参考方案2】:

我明白了。

override func viewDidAppear()
super.viewDidAppear()

if let window1 = self.view.window
  
    window1.styleMask.remove( [.closable, .resizable] )
  

这解决了我的问题

【讨论】:

以上是关于在第二个 ViewController 中禁用 closeButton的主要内容,如果未能解决你的问题,请参考以下文章

从一个 ViewController 中获取一个随机数并在第二个 ViewController 中使用它 - 更新

我用Xcode创建了两个view controller,在第二个viewcontroller中添加按钮之后,怎么进行代码关联?

iOS9:UIViewController:当 viewController 在第二个 UIWindow 中运行时,不会在拆分视图更改时调用 viewWillTransitionToSize

目标 C - 如何在触摸第一个 SKnode 时禁用第二个 Sknode 上的触摸

从具有相同 ViewController 类的相同情节提要中调用第二个视图

当我们在swift中使用MKMapView点击mapView时如何移动到第二个Viewcontroller?