当前位置: 首页 > 知识库问答 >
问题:

为什么没有实例化UIViewController?[关闭]

萧越泽
2023-03-14

我对这个代码有问题。

if let vc = storyboard?.instantiateViewController(withIdentifier: "profilevc") as? ProfileViewController {
            
            self.navigationController?.pushViewController(vc, animated: true)
        }

当单击tableView中的单元格时,应运行此代码。然而什么也没发生。据我所知,VCUIViewController根本没有创建。上面的代码放在这里。

extension ViewController: UITableViewDelegate {

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

        let user = users[indexPath.row]
        
        if let vc = storyboard?.instantiateViewController(withIdentifier: "profilevc") as? ProfileViewController {
            
            vc.user = user
            self.navigationController?.pushViewController(vc, animated: true)
        }
    }
}

ProfileViewController类型是这样定义的。

import UIKit

class ProfileViewController: UIViewController {
    
    var user: User!
    
    override func viewDidLoad() {  
        super.viewDidLoad()

        self.title = user.fullName

        }
}

我甚至尝试在if let之前添加let storyboard=UIStoryboard(名称:“main”,bundle:nil)并删除if letstoryboard之前的,但都不起作用。我在某处读到viewController需要在viewDidLoad()方法中才能创建,并尝试将其放在那里(没有成功,引发了一个致命错误)。

我能做什么?请帮帮忙。

共有1个答案

商华藏
2023-03-14

确保为场景正确分配了情节提要ID和类。

使用代码

// Make sure your storyboard name is correct in my case its "Main"
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
 
let vc = storyBoard.instantiateViewController(withIdentifier: "profilevc") as! ProfileViewController
self.navigationController?.pushViewController(vc, animated: true)
 类似资料:
  • 我完全是以编程的方式在iOS中工作,也完全是使用IB,但我第一次尝试将两者混合使用,我感到困惑。我正在写一个标签应用程序。在我的应用程序委托中,我曾经有以下代码: 那很好。 然后,我通过IB中的故事板创建了一个视图控制器,并向其添加了一堆用户界面元素,给出了以下设置: 现在我的代码是: 应用程序可以正常启动,但当我按tab键进入设置屏幕时,会收到以下消息: 这意味着什么?我如何修复它? 编辑:这里

  • < b >想改进这个问题?更新问题,以便通过编辑此帖子用事实和引用来回答问题。 为什么没有函数(没有任何参数)来展平

  • 今天我开始玩分支,检查两个布尔值。我很确定,在某些优化级别上,它们将简单地添加并检查,但gcc和CLANG不是这样。为什么gcc不优化两个bool检查,用addition和一个check替换它们?让我给你看一个例子: 两个分支(test+je)不应该比加法和分支(add+jne)慢吗? 编辑:我真正的意思是乘法,因为在true和false的情况下(1+0),加法给出true(1),但乘法给出正确的

  • 这样对吗?这就是它的初衷吗?

  • 问题内容: 我正在尝试做这样的事情: 不幸的是,即使在Java 9中也不存在。 为什么它被遗漏了? 建议的解决方法是什么? 问题答案: 为什么它被遗漏了? 该API提供了可重用的构建块。这里的相关积木是,,。通过这些,您可以实现所需的功能:将流内映射到对象,然后获得平面图。提供构建基块的排列是不切实际的,并且很难扩展。 建议的解决方法是什么? 如前所述,使用可用的构建基块(+ ):

  • 许多编译器都提供128位整数类型,但我使用过的编译器都没有提供typedefs。为什么? 据我回忆,标准 用于此目的的储量 鼓励提供此类类型的实现提供typedef 要求此类实现提供至少128位的intmax_t (而且,我不相信我使用了实际上符合最后一点的实现)