Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift 4-将数据从ViewController传递到ViewController到选项卡栏_Ios_Swift_Xcode - Fatal编程技术网

Ios Swift 4-将数据从ViewController传递到ViewController到选项卡栏

Ios Swift 4-将数据从ViewController传递到ViewController到选项卡栏,ios,swift,xcode,Ios,Swift,Xcode,这是我的密码: 主视图控制器 TabBarViewController: 我在MainViewControler中创建了正确的对象,但当我打开选项卡ViewControler时,该对象的数据不可见 有人知道为什么会发生这种情况以及如何解决这个问题吗?编辑:我在我的项目中检查了类似的功能,在那里我将loggedUser对象传递给下一个View Controller,我有类似的东西: override func prepare(for segue: UIStoryboardSegue, sender

这是我的密码:

主视图控制器

TabBarViewController:

我在MainViewControler中创建了正确的对象,但当我打开选项卡ViewControler时,该对象的数据不可见


有人知道为什么会发生这种情况以及如何解决这个问题吗?

编辑:我在我的项目中检查了类似的功能,在那里我将loggedUser对象传递给下一个View Controller,我有类似的东西:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "toLoginUser" {
            let navCon = segue.destination as! UINavigationController
            let newsVC = navCon.topViewController as! NewsViewController
            if let user = sender as? NSManagedObject {
                newsVC.loggedUser = self.loggedUser
            }

        }
    }

尝试在不使用self.present方法的情况下使用此方法,因为视图应自动显示。在我的例子中,这种方法的工作原理与您在评论中所描述的一样。

您能再解释一下您到底想要实现什么吗?你的代码很难读。是的。我有一个登录表单,在有效登录后创建一个对象。我想将此对象从MainViewControllerLoggeDuser传递到TabBarViewController并显示它。@ukaszBetta请现在检查,我更改答案以对应具有相同功能的工作项目这是我的完整代码:你能给我写下如何准确更改它吗?
class NewsViewController: UIViewController {

    var loggedUser : LoginUser?

    override func viewDidLoad() {
        super.viewDidLoad()
        print("Sprawdzam obiekt: \(loggedUser)")
        dump(loggedUser)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    @IBAction func testBtnPressed(_ sender: Any) {
        print("Sprawdzam obiekt: \(self.loggedUser)")
        dump(self.loggedUser)
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        self.tabBarController?.navigationItem.title = "Aktualności"
    }
    override var prefersStatusBarHidden: Bool {
        return true
    }
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "toLoginUser" {
            let navCon = segue.destination as! UINavigationController
            let newsVC = navCon.topViewController as! NewsViewController
            if let user = sender as? NSManagedObject {
                newsVC.loggedUser = self.loggedUser
            }

        }
    }