Ios 如何在满足IF后立即生成新的视图控制器?

Ios 如何在满足IF后立即生成新的视图控制器?,ios,swift,Ios,Swift,我正在为我的应用程序创建条形码阅读器。我已经搞定了,但是如果它没有和它读到的条形码联系起来,那就没用了。我接下来要做的是在函数捕获代码后立即启动一个新的视图控制器 问题是:如果满足此条件,如何尽快生成新的视图控制器 if metadataObj.stringValue != nil { messageLabel.text = metadataObj.stringValue } 这是(在用户面前)打印条形码数字形式的if(因此,当用户将相机指向条形码时,将显示4058394759)。接

我正在为我的应用程序创建条形码阅读器。我已经搞定了,但是如果它没有和它读到的条形码联系起来,那就没用了。我接下来要做的是在函数捕获代码后立即启动一个新的视图控制器

问题是:如果满足此条件,如何尽快生成新的视图控制器

if metadataObj.stringValue != nil 
{
    messageLabel.text = metadataObj.stringValue
}
这是(在用户面前)打印条形码数字形式的if(因此,当用户将相机指向条形码时,将显示4058394759)。接下来,我希望应用程序移动到一个新的视图控制器,在那里打印数值,并创建一个按钮,生成谷歌搜索


问题是,我只使用Interface Builder连接了视图控制器。如何通过代码进行此转换?

您应该检查注释中提供的链接,以便了解其工作原理。有很多方法可以做到这一点,我将只展示其中一种(使用和不使用特殊的初始值设定项):

您还可以显示视图控制器,而不是按下视图控制器。您也可以在不使用navigationController的情况下执行此操作。这些选项中的每一个都有其后果,这就是为什么我们敦促您检查链接,以便了解您的选项

我假设您的视图控制器有一个专门编写的init,可以使用所需的数据进行初始化。如果不是这样,则只需在显示/推送目标视图控制器之前,将该值指定给目标视图控制器中定义的属性:

if metadataObj.stringValue != nil 
{
    messageLabel.text = metadataObj.stringValue
    let vc = yourViewController()
    vc.somePropertyYouDefined = metadataObj.stringValue!
    self.navigationController?.push(vc, animated: true)
}

您应该检查评论中提供的链接,以便了解其工作原理。有很多方法可以做到这一点,我将只展示其中一种(使用和不使用特殊的初始值设定项):

您还可以显示视图控制器,而不是按下视图控制器。您也可以在不使用navigationController的情况下执行此操作。这些选项中的每一个都有其后果,这就是为什么我们敦促您检查链接,以便了解您的选项

我假设您的视图控制器有一个专门编写的init,可以使用所需的数据进行初始化。如果不是这样,则只需在显示/推送目标视图控制器之前,将该值指定给目标视图控制器中定义的属性:

if metadataObj.stringValue != nil 
{
    messageLabel.text = metadataObj.stringValue
    let vc = yourViewController()
    vc.somePropertyYouDefined = metadataObj.stringValue!
    self.navigationController?.push(vc, animated: true)
}
可能的重复可能的重复可能的重复可能的重复