Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在全屏模式演示风格下使用segue时,如何仍然显示导航栏?_Ios_Swift_Segue - Fatal编程技术网

Ios 在全屏模式演示风格下使用segue时,如何仍然显示导航栏?

Ios 在全屏模式演示风格下使用segue时,如何仍然显示导航栏?,ios,swift,segue,Ios,Swift,Segue,在过去的一年里,我没有开发iOS应用程序,因为我必须专注于Android开发。iOS 13的开发也有很多变化 我在导航控制器中有一些VCs,如下所示 当我使用将从VC1切换到VC2并返回到VC1时,它会使它像这样的卡片。下面是我在单击第一个VC中的按钮时使用的代码 @IBAction func createEventButtonDidPressed(_ sender: Any) { // do some actions first and then performSegue(

在过去的一年里,我没有开发iOS应用程序,因为我必须专注于Android开发。iOS 13的开发也有很多变化

我在导航控制器中有一些VCs,如下所示

当我使用从VC1切换到VC2并返回到VC1时,它会使它像这样的卡片。下面是我在单击第一个VC中的按钮时使用的代码

@IBAction func createEventButtonDidPressed(_ sender: Any) {

    // do some actions first and then
    performSegue(withIdentifier: "chooseEventName", sender: nil)
}

我试着读过这篇文章,所以我制作了全屏模态音乐

但它会使VC2中的导航栏(蓝色vc)无法显示

我已尝试将“透明导航栏”选择为“透明导航栏”

但当我运行应用程序时,我无法在第二个VC中获得导航栏,当使用全屏模式segue时,导航栏不会显示

在iOS 13之前,我真的需要完全相同的行为。比如使用推送序列,导航栏仍然在顶部,但看起来像一张卡片


如何做到这一点?

然后让我们在iOS中刷新一下您的思维

推送需要导航控制器。这会使新屏幕滑到前端。如果没有navigationController,则新屏幕将以模式显示。如果我们想弹出新屏幕并让用户返回上一个屏幕,我们在代码中使用POP

存在不需要导航控制器。这使新屏幕向上滑动。如果我们想取消它,我们在代码中使用取消。如果需要,可以将navigationController添加到下一个屏幕

现在,iOS 13.0在屏幕显示方面有什么新功能?默认情况下,屏幕现在将显示为卡片,而不是全屏显示

回到你的问题:

在iOS 13之前,我真的需要完全相同的行为。喜欢用 按segue键,导航栏仍在顶部,但看起来不象 纸牌


您需要使用推送而不是呈现。再次点击该序列,然后选择显示(这是Interface Builder中的推送等效项)。也可以点击VC1,点击Xcode的编辑器菜单,嵌入,然后点击导航控制器。

让我们用iOS刷新一下你的思维

推送需要导航控制器。这会使新屏幕滑到前端。如果没有navigationController,则新屏幕将以模式显示。如果我们想弹出新屏幕并让用户返回上一个屏幕,我们在代码中使用POP

存在不需要导航控制器。这使新屏幕向上滑动。如果我们想取消它,我们在代码中使用取消。如果需要,可以将navigationController添加到下一个屏幕

现在,iOS 13.0在屏幕显示方面有什么新功能?默认情况下,屏幕现在将显示为卡片,而不是全屏显示

回到你的问题:

在iOS 13之前,我真的需要完全相同的行为。喜欢用 按segue键,导航栏仍在顶部,但看起来不象 纸牌


您需要使用推送而不是呈现。再次点击该序列,然后选择显示(这是Interface Builder中的推送等效项)。也可以点击VC1,点击Xcode的编辑器菜单,嵌入,然后点击导航控制器。

如果将VC2嵌入到自己的导航控制器中,它将显示在导航栏中。 因此,您的视图应该类似于UINav->VC1->UINav->VC2


当显示全屏视图和模式时,所有以前的导航控制器不构成新堆栈的一部分

如果将VC2嵌入其自己的导航控制器,它将与导航栏一起显示。 因此,您的视图应该类似于UINav->VC1->UINav->VC2


当显示全屏视图和模式时,所有以前的导航控制器不构成新堆栈的一部分

像这样?如果我从VC2回到VC1,它会使VC1像一张卡片一样。是的,就像那样。不,不会,也不应该。这是因为正如我在回答中所说,您需要在第一个屏幕(VC1)中安装
UINavigationController
。因此,点击VC1->点击位于Xcode->embedded In->NavigationController顶部的编辑器。在上面的屏幕截图中,我已经将VC嵌入到导航控制器中。如果我再次嵌入,那么我将有两个这样的导航控制器?但不幸的是,卡仍然在那里,没有必要嵌入它,我的坏,我没有注意到你的导航控制器。我以为它是一个选项卡栏控制器。这应该不是那么简单,推送/显示应该使用navigationController,仅此而已。这些卡片将仅用于模态/呈现。在阅读我上面的解释时,制作一个新的项目并尝试从那里进行实验如何?是的,当第一个VC中的按钮被点击时,在完成一些操作后,我使用performsgue(带有标识符:“chooseEventName”,发送者:nil),如下所示?如果我从VC2回到VC1,它会使VC1像一张卡片一样。是的,就像那样。不,不会,也不应该。这是因为正如我在回答中所说,您需要在第一个屏幕(VC1)中安装
UINavigationController
。因此,点击VC1->点击位于Xcode->embedded In->NavigationController顶部的编辑器。在上面的屏幕截图中,我已经将VC嵌入到导航控制器中。如果我再次嵌入,那么我将有两个这样的导航控制器?但不幸的是,卡仍然在那里,没有必要嵌入它,我的坏,我没有注意到你的导航控制器。我以为它是一个选项卡栏控制器。这应该不是那么简单,推送/显示应该使用navigationController,仅此而已。汽车