我有两个嵌入式容器重叠在一个 View Controller 的同一位置。我通过设置容器上的隐藏属性使它们可以互换,并使用段控件来设置两个嵌入式容器的隐藏状态,我已经做到了。我现在想要的是,当我在一个嵌入式容器 View 中切换按钮时,如何显示另一个嵌入式容器。两个嵌入 View 属于两个不同的 View Controller 类。我尝试在一个嵌入 View 上的按钮切换时设置隐藏属性,该按钮在父类中设置为 false,它显示“ fatal error :在展开可选值时意外发现 nil”,这意味着我没有初始化尽管创建了父 View Controller ,但“ChangePersonalInfo”是嵌入式容器,那么如何初始化它以设置隐藏属性。 这是我的代码
class MiscellaneousDetailsViewController: UIViewController {
@IBAction func verifyPhoneNumber(sender: AnyObject) {
let vc = storyboard?.instantiateViewControllerWithIdentifier("MyProfileViewController") as! MyProfileViewController
vc.ChangePersonalInfo.hidden = false
}
}
class MyProfileViewController: UIViewController, SMSegmentViewDelegate
{
@IBOutlet weak var ChangePersonalInfo: UIView!
}
// parent view controller
最佳答案
您需要在 viewcontroller 的 viewDidload 方法中隐藏您的 View ,因为该方法在您的 View 加载并设置 view 的默认属性时调用, 默认情况下, View 的visible属性为true
override func viewDidLoad() {
super.viewDidLoad()
if (isViewHidden == true)
{ ChangePersonalInfo?.hidden = true
}
// Do any additional setup after loading the view.
}`
维护一个 bool 变量来设置隐藏的 true/false
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
let nextScene = segue.destinationViewController as! MyProfileViewController
nextScene.isViewHidden = true
}
关于ios - 如何在嵌入式容器之间从一个嵌入式 View 内部切换到另一个嵌入式 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35909870/