单击第二个选项卡时,标签栏不起作用

时间:2016-11-13 02:26:56

标签: swift xcode uiviewcontroller uitabbarcontroller

我的Tab栏控制器出现问题!在模拟我的项目时,我的标签栏控制器出现,选择了第一个标签,并显示我放在第一个标签中的视图(这样一切都正确)。但是当我点击第二个标签时,它会将我带回xcode并显示"线程1:信号SIGABRT"在AppDelegate类的顶部。我不知道为什么会发生这种情况,除了可能没有正确链接的东西。 有人可以通过步骤将View Controller链接到标签栏控制器的第二个标签吗?谢谢!

我在第二个场景的故事板中所拥有的只有两个标签,一个开关,一个滑块和一个按钮。因为我只需要担心交换机和标签的值,这些是我使用插座连接到代码的唯一两件事。

1 个答案:

答案 0 :(得分:0)

<强> 1。带有一个视图控制器的标签栏控制器

enter image description here

<强> 2。使用UILabel添加第二个视图控制器

enter image description here

第3。 Ctrl +从标签栏控制器拖动到第二个视图控制器

enter image description here

<强> 4。从Relationship Segue - &gt;中选择view controllers

enter image description here

<强> 5。带有两个视图控制器的标签栏控制器

enter image description here

<强> 6。结果

enter image description here

<强> 7。要访问标签等,请为第二个视图控制器创建一个文件,在此示例中SecondViewController.swift继承自UIViewController

import UIKit

class SecondViewController: UIViewController {

}

<强> 8。在选择了第二个视图控制器的故事板中,在custom class中设置identity inspector并点击返回

enter image description here

<强> 9。要将ui元素连接到文件并访问它,请按住Ctrl +拖动从uilabel到文件并给它起个名字,在这种情况下randomTextLabel

enter image description here

<强> 10。更改SecondViewController.swift中的标签,例如在viewDidLoad

import UIKit

class SecondViewController: UIViewController {

  @IBOutlet weak var randomTextLabel: UILabel!

  override func viewDidLoad() {
    super.viewDidLoad()
    randomTextLabel.text = "Changed Label Text"
  }
}

<强> 11。更改UILabel的结果

enter image description here