在iOS 13 Beta 1中,出现模态视图控制器时有新行为。现在默认情况下它不是全屏显示,当我尝试向下滑动时,该应用程序会自动关闭View Controller。
如何防止这种行为并回到旧的好全屏模式vc?
谢谢
我的应用程序很大一部分由Web视图组成,以提供本机实现尚不可用的功能。Web团队没有计划为网站实施深色主题。因此,在iOS 13上支持深色模式的情况下,我的应用看起来会一半/一半。
是否可以选择不支持暗模式,以便我们的应用程序始终显示亮模式以匹配网站主题?
我的应用程序没有为黑暗模式做准备,我今天不打算对其进行处理。
有没有办法为我的应用禁用暗模式更改?
A UISegmentedControl
在iOS 13中具有新外观,并且现有代码更改分段控件的颜色不再像以前那样起作用。
在iOS 13之前,您可以设置tintColor
和,以用于分段控件周围的边框,分段之间的线条以及所选分段的背景颜色。然后,您可以使用带有的前景色属性更改每个句段标题的颜色titleTextAttributes
。
在iOS 13下,tintColor
什么都不做。您可以设置分段控件backgroundColor
以更改分段控件的整体颜色。但是我找不到任何方法来更改用作所选段背景的颜色。设置文本属性仍然有效。我什至尝试设置标题的背景色,但这只会影响标题的背景,而不会影响所选片段的其余背景色。
简而言之,您如何修改UISegmentedControl
iOS 13中当前选定的段的背景颜色?是否有使用公共API的适当解决方案,而无需深入研究私有子视图结构?
在iOS 13中,没有针对UISegmentedControl
或的新属性,UIControl
并且这些更改UIView
均不相关。
iOS 13为模态呈现的视图控制器引入了modalPresentationStyle
.pageSheet
(及其兄弟姐妹.formSheet
)的新设计…
…我们可以通过向下滑动显示的视图控制器来消除这些页面(交互式消除)。尽管新的“拉动关闭”功能非常有用,但可能并不总是令人满意。
问题:我们如何关闭交互式解雇? -请记住,我们保持演示文稿样式不变。
随着iOS 13的到来,statusBar的视图不再能通过低谷访问:
value(forKey: "statusBar") as? UIView
Run Code Online (Sandbox Code Playgroud)
由于:
由于未捕获的异常“ NSInternalInconsistencyException”而终止应用程序,原因:“在UIApplication上名为-statusBar或-statusBarWindow的应用程序:此代码必须更改,因为不再有状态栏或状态栏窗口。而是在窗口场景上使用statusBarManager对象。”
但是目前尚不清楚应如何使用它来更改颜色,因为keyWindow?.windowScene?.statusBarManager
它似乎不包含与之相关的任何内容。
我正在编译具有(iOS 10,*)兼容性的代码,因此我打算继续使用UIKit。
关于这个主题有什么想法吗?
在iOS 13之前,提供了用于覆盖整个屏幕的视图控制器。并且,在关闭后,将viewDidAppear
执行父视图控制器功能。
现在,iOS 13默认将表单显示为视图控制器,这意味着卡将部分覆盖基础视图控制器,这意味着viewDidAppear
不会被调用,因为父视图控制器从未真正消失过。
有没有一种方法可以检测到所显示的视图控制器工作表已被解雇?我可以在父视图控制器中重写某些其他功能,而不是使用某种委托?
在iOS 13中,可以使用平移手势关闭使用表单和页面样式的模式演示。在我的一个表单中,这是有问题的,因为用户会拖入该框,从而干扰手势。它将屏幕下拉而不是画一条垂直线。
如何在显示为图纸的模态视图控制器中禁用垂直滑动以消除手势?
设置isModalInPresentation = true
仍然允许将工作表拉下,但不会关闭。
重现问题的前提条件:
在实际设备中,状态栏将在绿色导航栏上方保留为白色。
我尝试的解决方案:
有任何想法吗?感谢您的帮助。
我有一个导航栏,其中包含一些UIBarButtonItem
按钮和类似的UISearchBar
挂钩
var searchController: UISearchController!
override func viewDidLoad() {
super.viewDidLoad()
title = "Test"
tableView.delegate = self
tableView.dataSource = self
searchController = UISearchController(searchResultsController: nil)
navigationItem.searchController = searchController
// This leads to the bug
searchController.hidesNavigationBarDuringPresentation = false
navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(leftTapped))
navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(rightTapped))
}
Run Code Online (Sandbox Code Playgroud)
场景:我点击搜索栏,然后点击取消。
问题1:除非我触摸屏幕的最外面的像素,否则条形按钮对触摸没有反应(仅在模拟器和鼠标单击时才可能)。
问题2:当我按下另一个视图控制器时,导航项重叠。
当我使用hidesNavigationBarDuringPresentation = true
它时,它的工作就像预期的那样。
该问题出现在使用Xcode 11.0和11.1的带槽口和非带槽口的iPhone iOS 13.0和13.1上。
这是整个测试项目:https : //github.com/fl034/HidesNavigationBarDuringPresentationTest
我已经提起雷达(您也应该提起诉讼),但是也许你们中的有些人已经找到了解决方法?
更新1:iOS …