ios - 在 Segue 之后丢失@IBOutlets

标签 ios swift uiviewcontroller segue iboutlet

我正在使用 Xcode View 编辑器和 Swift。

我的主视图包含一个带有 2 个选项卡的选项卡栏 Controller 。 在第二个选项卡上,我有一个 @IBoutlet var myLabel: UITextLabel!。在 viewWillAppear 中,我在此标签中放置了一些文本。

在第一个选项卡上,我有一个按钮,它通过 Push segue 启动第三个 View ,在这个新选项卡上,我有一个返回按钮,它让我回到包含选项卡栏 Controller 的主视图(通过推送segue 也是)。

当我启动我的应用程序时,进入我的第二个选项卡,UITextLabel 的文本已更改。 我仍然可以转到我的第一个选项卡并在它们之间导航它有效。 但问题是当我单击第一个选项卡的按钮,然后单击取消,然后返回到我的第二个选项卡时,我的 UITextLabel 没有改变。而且我无法再对其执行任何操作。虽然它不是零,但它就像它仍然连接到 segue 之前的第一个 UITextLabel 而不是这个。

我哪里错了?

最佳答案

有几处是错误的。

对于选项卡式应用程序,Apple 表示选项卡栏 Controller 应该是应用程序的根级导航方法。它应该始终存在,并且用户应该始终能够点击另一个点击以切换到应用的另一部分。

所以第一个选项卡应该连接到导航 Controller 。当用户按下按钮时,您应该将一个新的 View Controller 推送到该导航 Controller 上。标签栏仍然可见并启用,用户仍然可以切换到 View Controller 一。

下一步:

你说“我有一个后退按钮,它让我回到包含标签栏 Controller 的主视图(也通过推送转场)。”

这是非常错误的。后退按钮应该从当前导航堆栈中弹出一个 View 。他们不应该插入任何事情。任何时候你使用 push segue,你都在创建和推送一个全新的 View Controller 实例,并将其他 View Controller 留在导航堆栈中。

关于ios - 在 Segue 之后丢失@IBOutlets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46880030/

相关文章:

ios - 回到导航 Controller

ios - swift 关闭 View 时,屏幕有时会卡住且没有错误

java - 在 MVC 上的一个 Jframe 中有多个带有按钮的 Jpanel,如何在我的 Controller 中获取 actionlistener?

ios - 什么最能代表角色 SKNode 或 SKSpriteNode?

ios - Alamofire - 在 responseJSON 之前预处理响应

swift - 在实现测量扩展中,我们可以使用通用的 UnitType 吗?

iphone - 如何更改 Controller 中按钮的图像与另一个按钮的图像?

ios - iPhone 应用程序更新 : Ignore backwards compatibility for iOS 3. X(iOS 部署目标设置为 4.0)

ios - 用于检查空路径的 NSPredicate 格式

xcode - 位置未打印到控制台(Swift + Xcode 7 + iOS 9)