在Swift中实例化和呈现viewController

 mobiledu2502929507 发布于 2023-01-11 17:52

这一切都是新语法的问题,功能没有改变:

// Swift 3.0

let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "someViewController")
self.present(controller, animated: true, completion: nil)

如果您遇到问题init(coder:),请参阅EridB的回答.

7 个回答
  • 这一切都是新语法的问题,功能没有改变:

    // Swift 3.0
    
    let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
    let controller = storyboard.instantiateViewController(withIdentifier: "someViewController")
    self.present(controller, animated: true, completion: nil)
    

    如果您遇到问题init(coder:),请参阅EridB的回答.

    2023-01-11 17:54 回答
  • Swift 4.2更新的代码是

    let storyboard = UIStoryboard(name: "StoryboardNameHere", bundle: nil)
    let controller = storyboard.instantiateViewController(withIdentifier: "ViewControllerNameHere")
    self.present(controller, animated: true, completion: nil)
    

    2023-01-11 17:54 回答
  • 此链接具有以下两种实现:

    迅速:

    let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("ViewController") as UIViewController
    self.presentViewController(viewController, animated: false, completion: nil)
    

    目标C.

    UIViewController *viewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"ViewController"];
    

    此链接具有用于在同一故事板中启动viewcontroller的代码

    /*
     Helper to Switch the View based on StoryBoard
     @param StoryBoard ID  as String
    */
    func switchToViewController(identifier: String) {
        let viewController = self.storyboard?.instantiateViewControllerWithIdentifier(identifier) as! UIViewController
        self.navigationController?.setViewControllers([viewController], animated: false)
    
    }
    

    2023-01-11 17:54 回答
  • akashivskyy的回答很好!但是,如果您从显示的视图控制器返回时遇到一些问题,则此替代方法可能会有所帮助.它对我有用!

    迅速:

    let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
    let vc = storyboard.instantiateViewControllerWithIdentifier("someViewController") as! UIViewController
    // Alternative way to present the new view controller
    self.navigationController?.showViewController(vc, sender: nil)
    

    OBJ-C:

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboardName" bundle:nil];
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"someViewController"];
    [self.navigationController showViewController:vc sender:nil];
    

    2023-01-11 17:54 回答
  • 对于使用@ akashivskyy的答案进行实例化UIViewController并且有异常的人:

    致命错误:在课堂上使用未实现的初始化程序'init(coder :)'

    小建议:

    required init?(coder aDecoder: NSCoder)在您的目的地手动实施您UIViewController尝试实例化的内容

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
    

    如果你需要更多的描述,请参阅我的答案在这里

    2023-01-11 17:54 回答
  • // "Main" is name of .storybord file "
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    // "MiniGameView" is the ID given to the ViewController in the interfacebuilder
    // MiniGameViewController is the CLASS name of the ViewController.swift file acosiated to the ViewController
    var setViewController = mainStoryboard.instantiateViewControllerWithIdentifier("MiniGameView") as MiniGameViewController
    var rootViewController = self.window!.rootViewController
    rootViewController?.presentViewController(setViewController, animated: false, completion: nil)
    

    当我把它放在AppDelegate中时,这对我来说很好

    2023-01-11 17:54 回答
  • 如果你想以模态方式呈现它,你应该有类似下面的东西:

    let vc = self.storyboard!.instantiateViewControllerWithIdentifier("YourViewControllerID")
    self.showDetailViewController(vc as! YourViewControllerClassName, sender: self)
    

    2023-01-11 17:55 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有