ios - 如何在嵌入式容器之间从一个嵌入式 View 内部切换到另一个嵌入式 View ?

标签 ios objective-c swift

我有两个嵌入式容器重叠在一个 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/

相关文章:

ios - 如何使用动态单元格获取 UITableView 中多个文本字段的值?

ios - Swift - 如何使用 XIB 文件创建自定义 viewForHeaderInSection?

ios - 更新子字符串(到 :) results in generic parameter could not be inferred

ios - 我可以将我的应用程序从所需的较高 iOS 版本更新为所需的较低 iOS 版本吗?

ios - ReactiveCocoa : View doesn't update when ViewModel property changes

ios - 在用户在 UITextField 中键入内容后添加不可编辑的标签 - iOS

arrays - 遍历数组并将连续数字分组在另一个数组 SWIFT 4 中的最佳方法?

ios - 尝试从特定的崩溃日志中获取代码行

objective-c - 将首选项 Pane 添加到应用程序

c - 有或没有 float "f"后缀的写入/传递值有区别吗?