使用swift创建一个新视图

时间:2017-02-16 13:18:30

标签: ios swift storyboard

我是iOS网站的新用户。我使用导航控制器并pushViewController切换到其他视图。但现在我试图在没有导航栏的情况下推送到视图。新视图应包含一个完成按钮,一旦单击该按钮应该将用户带回到最后一个视图。你知道如何实现这个目标吗?我试过这个

let storyboard = UIStoryboard(name: "Main.Storyboard", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "FormViewController")
self.present(controller, animated: true, completion: nil)

我收到了错误

'Could not find a storyboard named 'Main.storyboard' in bundle NSBundle.如果我将FormViewController作为故事板名称,我会收到同样的错误。我将FormViewController设置为Storyboard ID,并将其设置为我想要与界面一起使用的swift文件名,Main.Storyboard是故事板文件的名称。

2 个答案:

答案 0 :(得分:4)

你没有添加" .storyboard"文件名的一部分,它会自动执行:

let storyboard = UIStoryboard(name: "Main", bundle: nil)

答案 1 :(得分:1)

在处理storyboard和访问ViewController时,您必须按照以下步骤操作:

<强> 1。将Storyboard ID分配给ViewController

Storyboard中,选择所需的ViewController并为其指定 Storyboard Id

enter image description here

<强> 2。访问ViewController

要访问ViewController,您需要我们在第一步中设置的 Storyboard Id

如果你只有一个storyboard,你就可以这样做

let controller = self.storyboard.instantiateViewController(withIdentifier: "YourViewControllerID")
self.present(controller, animated: true, completion: nil)

**

或者

**

let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let controller = storyboard.instantiateViewController(withIdentifier: "YourViewControllerID")
    self.present(controller, animated: true, completion: nil)

如果您在同一个项目中使用多个故事板,那么您必须使用其名称(不包含其扩展名,即.Storyboard)访问storyboard < /强>:

let storyboard = UIStoryboard(name: "YourStoryboardName", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "YourViewControllerID")
self.present(controller, animated: true, completion: nil)