Tag: 导航控制器

状态栏的神秘案例

我想要的只是状态栏的两件事: 我希望它默认为白色,因为它会在深色背景上 我希望能够不时地暂时隐藏它。 直截了当吧? 没那么多……让我们看一下这个案例。 因此,如果您四处逛逛,有几种方法可以操纵状态栏,让我们看一下: 在“常规”选项卡中,您可以找到用于项目目标的首选项的两个字段,这些字段用于调整状态栏的默认行为: 状态栏样式-在浅色 (即浅色文本)或默认值 (即深色文本)之间选择 隐藏状态栏-一个复选框。 这些字段是从info plist派生的,这是调整这些字段的另一种方法: 如果您使用info.plist来调整状态栏的默认行为,则需要为以下行添加行: 状态栏最初是隐藏的 ( UIStatusBarHidden ) 选择是或否 。 状态栏样式 ( UIStatusBarStyle )。 从以下任一选项中进行选择: 默认 ( UIStatusBarStyleDefault ) 轻 ( UIStatusBarStyleLightContent ) 忽略Xcode希望您在不透明黑色样式和透明黑色样式(alpha值为0.5)之间进行选择。 这些是不推荐使用的样式,似乎没有人告诉过属性列表编辑器! 如果仔细观察,您会注意到我在info.plist中设置了另一条与状态栏相关的行-另一个名为基于视图控制器的状态栏外观的布尔属性-我将在稍后再讨论这一行。 因此,它们是为状态栏样式设置默认值以及是否将其隐藏的方法。 但是,如果您要临时更改这些默认值,该怎么办? 如果环顾互联网,您会看到提到的两个替代解决方案: 在UIAppDelegate上设置属性 覆盖视图控制器类中的属性 有些人会建议您在UIAppDelegate上设置属性: UIApplication.shared.statusBarStyle = .default //设置样式UIApplication.shared.isStatusBarHidden = false //如果隐藏则设置 例如,可以在应用程序的UIAppDelegate的didFinishLaunchingWithOptions方法中或在您真正喜欢的任何地方进行设置(例如,如果要临时更改视图控制器的设置,则可以在viewDidAppear和viewDidDisappear方法中进行viewDidDisappear 。 听起来不错,对吧? 只需调用一种方法即可更新状态栏,非常简单。 哦,等等,对不起。 我忘了提一下-iOS […]

在Swift 3中创建Unwind Segues

这篇博客文章是关于如何在Swift中创建放松的任务。 实现它们非常简单-因此,本文当然很短。 (源代码:https://github.com/mimicatcodes/unwindSegueExample) 但是等等,什么是放松的比赛? 假设我们有三个屏幕,分别是1,2和3。我们想通过创建Show segue从1切换到2,现在通过使用Storyboard中的Present Modally segue从2切换到3。 我们刚刚从2和3创建了一个Present Modally序列-这意味着如果我们想从3回到2,我们可以使用以下方法简单地关闭当前视图控制器(VC3): @IBAction func dismissVC(_ sender:Any){ 关闭(动画:true,完成:nil) } 熟悉,不是吗? 但是,如果我们想从3回到1,而不是2,该怎么办? 在这种情况下, 轻松的搜寻非常有用。 有了放开的序列,您现在可以从3退回到1,而无需先回到2,然后再通过导航控制器回到1。 请遵循以下四个简单步骤来创建Unwind segue: 在视图控制器中,您尝试回到示例VC1中,编写以下代码: @IBAction func unwindToVC1(segue:UIStoryboardSegue){} (请记住:在您要返回到TO的视图控制器中插入此方法很重要!) 2.在情节提要中,转到您要从中解散的屏幕( 在本例中为 3 ) ,然后按住Control键并将视图控制器图标拖到顶部的“退出”图标上。 如上所示,当您看到要连接的IBAction选项时,请选择刚刚在VC1中创建的展开segue操作。 3.转到情节提要中选定视图控制器的文档大纲,如下图所示选择展开序列。 现在,转到“实用工具”窗格中的“属性”检查器,并命名展开序列的标识符。 4.最后,将此代码编写在您希望触发放松segue动作的位置(在本例中为V3)。 @IBAction func goBackToOneButtonTapped(_ sender:Any){ performSegue(withIdentifier:“ unwindSegueToVC1”,发送者:self) } 可以在这里找到本教程的源文件:https://github.com/mimicatcodes/unwindSegueExample 编码愉快!

Swift NavigationViewController

点选画面后,编辑→嵌入→导航控制器 随后建立第二个页面并用button连接 问题: 那么第二页使用dissmiss的方法可以回去吗? 因为popViewController是属于navigationController的方法,不是ViewController本身的方法。 @IBAction func buttonAction(_ sender:UIButton){ // dissmiss的方法按了没任何效果 //关闭(动画:true,完成:nil) //以下为正确的使用方式 self.navigationController?.popViewController(动画:true) } 点选第一页的导航,可以改标题及返回按钮名称 第二页可以使用导航项拉入上方即可 使用程式码进入页面或离开页面 进入,使用pressent会没有导航 navigationController?.pushViewController(“进入页面的ID”,动画:true) 离开 navigationController?.popViewController(动画:true)