我对Swift和Xcode几乎是全新的,所以请原谅我在这个领域缺乏知识。 目前我有一个带有标签的视图控制器。我想在此之前添加一个视图,使用文本字段,用户在其中输入名称,然后应用程序转到第二个视图,其中标签中用户输入的名称放在标签上。
我知道这是非常基本的,但我找不到任何好的解决方案,因为我不太确定要搜索什么。如果有人有一段代码或链接到一个好的来源,我很乐意看到它。
谢谢!
编辑:我对此知之甚少。使用两个视图时是否需要导航控制器?我需要两个ViewController.swift文件吗?
答案 0 :(得分:2)
以下是通过12个简单步骤完成的方法:
1)是的。我建议使用Navigation Controller
。使用单一视图应用程序启动新项目。
2)在故事板中选择ViewController
,然后从上方的菜单栏中选择Editor->Embed In->Navigation Controller
。
3)拖出UIButton
和UITextField
并将其放入您的第一个ViewController
。
4)您需要IBOutlet
到您的文本字段,以便您可以从中读取文本。 通过单击 Xcode 右上角的 Tuxedo 图标,显示“助理编辑器”。单击Storyboard中的ViewController
。右侧编辑器窗格将显示ViewController
的代码。按住 Control 键并从文本字段拖动到右窗格中的代码。当你在class ViewController : UIViewController {
下方的空间时,放开鼠标按钮。在弹出窗口中,将 Connection 设置为 Outlet ,将名称设置为textField
,然后按连接。这会将行@IBOutlet weak var textField: UITextField!
添加到您的ViewController
。
5)现在是时候添加第二个视图控制器了。从菜单中选择File->New->File...
。在对话框中,确保左侧选中 iOS 下的 Source ,然后选择 Cocoa Touch Class 并按 Next 。将类命名为SecondViewController
并使其成为UIViewController
的子类。按下一步,然后按创建。
6)在故事板中,拖出UIViewController
并将其放在第一个ViewController
的右侧。选择新的ViewController
并通过单击 Tuxedo 图标下方图标行左侧的第3个图标打开 Identity Inspector 。 (提示:如果你将图标悬停,它会告诉你他们做了什么)。将班级更改为SecondViewController
。
7)在故事板中,从第一个ViewController
中的按钮控制拖动(按住控制并拖动)到新SecondViewController
。在弹出窗口中选择显示作为动作搜索。
8)拖出标签并将其放入SecondViewController
。像在步骤4中一样添加IBOutlet
并将其命名为 mylabel 。
9)在SecondViewController
的代码中添加一个新的实例变量,如下所示:var firstVCtext = ""
10)在第一个ViewController
添加此方法:
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
let secondVC = segue.destinationViewController as SecondViewController
secondVC.firstVCtext = textField.text
}
11)在SecondViewController
中,将此行代码添加到viewDidLoad
方法:mylabel.text = firstVCtext
12)运行程序!
答案 1 :(得分:1)
答案 2 :(得分:0)
要将数据从一个视图移动到另一个视图,使用segue(发音为seg-way)是最简单的。这方面有一个例子:
如果您使用Google for Swift和Segue,您可能会找到更多示例。