如何在嵌入式容器之间从一个嵌入式视图切换到另一个嵌入式视图?

时间:2016-03-10 07:11:10

标签: ios objective-c swift

我在一个视图控制器中的两个嵌入式容器重叠在同一个地方。我通过在容器上设置隐藏属性并使用段控件来设置两个嵌入式容器的隐藏状态(我已经创建它),使它们可以互换。我现在想要的是,当我在一个嵌入式容器视图中切换按钮时,如何显示另一个嵌入式容器。两个嵌入视图属于两个不同的视图控制器类。当一个嵌入视图上的按钮切换到父类中设置为false时,我试图设置隐藏属性,它表示"致命错误:在解开一个Optional值"时意外地发现了nil,这意味着我没有初始化" 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

1 个答案:

答案 0 :(得分:0)

您需要在viewcontroller的viewDidload mathod中隐藏您的视图,因为当您的视图加载并设置视图的默认属性时,此mathod会调用,   默认情况下,视图的visible属性为true

override func viewDidLoad() {
        super.viewDidLoad()

if (isViewHidden == true)
{ ChangePersonalInfo?.hidden = true

}



    // Do any additional setup after loading the view.
}`

Mantain一个布尔变量用于设置隐藏的真/假

 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!)      {
    let  nextScene =  segue.destinationViewController as! MyProfileViewController
    nextScene.isViewHidden = true

}