在Swift的其他视图中使用从视图中input的文本(Xcode 6)
我对Swift和Xcode几乎是全新的,所以原谅我在这个领域缺乏知识。 目前,我有一个视图控制器,其中有一个标签。 在此之前,我想添加一个视图,其中用户input一个名称的文本字段,然后应用程序转到第二个视图,其中用户input的名称被放置在标签上。
我知道这是非常基本的,但我不能find任何好的解决scheme,因为我不太确定要search什么。 如果任何人有一段代码或一个好的来源链接,我很乐意看到它。
谢谢!
编辑:我对这一点知之甚less。 使用两个视图时是否需要导航控制器? 我需要两个ViewController.swift文件吗?
以下是12个简单的步骤:
1)是的。 我build议使用Navigation Controller
。 使用单一视图应用程序启动一个新项目。
2)在Storyboard中selectViewController
,然后从上面的菜单栏selectEditor->Embed In->Navigation Controller
。
3)拖出一个UIButton
和一个UITextField
并把它们放在你的第一个ViewController
。
4)你将需要一个IBOutlet
到你的文本字段,以便你可以从中读取文本。 单击Xcode右上angular的Tuxedo图标以显示助手编辑器 。 点击故事板中的ViewController
。 正确的编辑窗格将显示ViewController
的代码。 按住Ctrl键并从文本字段拖动到右侧窗格中的代码。 在class ViewController : UIViewController {
下面的空间放开鼠标buttonclass ViewController : UIViewController {
。 在popup窗口中,将连接设置为出口 ,将名称设置为textField
并按下连接 。 这将添加行@IBOutlet weak var textField: UITextField!
到你的ViewController
。
5)现在是时候添加第二个视图控制器。 从菜单中selectFile->New->File...
在对话框中,确保左边select了iOS下的Source ,然后selectCocoa Touch Class ,然后按Next 。 将类SecondViewController
为UIViewController
的子类。 按下一步 ,然后创build 。
6)在Storyboard中,拖出一个UIViewController
并将其放在第一个ViewController
的右侧。 select新的ViewController
并通过单击Tuxedo图标下面一排图标左侧的第三个图标打开Identity Inspector 。 (提示:如果你hover的图标,它会告诉你他们做什么)。 将该类更改为SecondViewController
。
7)在Storyboard中,通过控制 – 从第一个ViewController
的button拖动(按住控制并拖动)到新的SecondViewController
。 在popup的select显示为行动Segue 。
8)拖出一个标签 ,并将其放入SecondViewController
。 像在第4步中那样添加一个IBOutlet
并称之为mylabel 。
9)在SecondViewController
的代码中添加一个新的实例variables,如下所示: 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)运行程序!
这里的代码和图像的另一个很好的教程:
http://www.jamesrambles.com/ios-swift-passing-data-between-viewcontrollers/
要将数据从一个视图移到另一个视图,使用segue(发音seg-way)是最简单的。 一个例子是在这里:
如果你是Google的Swift和Segue,你可能会find更多的例子。