gpt4 book ai didi

ios - Swift 实例化 UIViewController 并在同一文件中添加为 subview

转载 作者:行者123 更新时间:2023-11-28 12:21:27 25 4
gpt4 key购买 nike

我对 Swift 和原生 iOS 开发非常陌生。

我成功地在 Swift 中创建了一个标签,它在我的应用程序中显示如下:

import UIKit
import SpreadsheetView

class SampleView: UIView {

override init(frame: CGRect) {
super.init(frame: frame)

let label = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 50))
label.text = "This is Swift"
self.addSubview(label)

}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

}

但是我现在需要添加一个 SpreadsheetView - 从这里 - https://github.com/kishikawakatsumi/SpreadsheetView

我的代码对此进行了更改,而不是添加标签:

import UIKit
import SpreadsheetView

class ViewController: UIViewController, SpreadsheetViewDataSource {
@IBOutlet weak var spreadsheetView: SpreadsheetView!

override func viewDidLoad() {
super.viewDidLoad()
spreadsheetView.dataSource = self
}

func numberOfColumns(in spreadsheetView: SpreadsheetView) -> Int {
return 200
}

func numberOfRows(in spreadsheetView: SpreadsheetView) -> Int {
return 400
}

func spreadsheetView(_ spreadsheetView: SpreadsheetView, widthForColumn column: Int) -> CGFloat {
return 80
}

func spreadsheetView(_ spreadsheetView: SpreadsheetView, heightForRow row: Int) -> CGFloat {
return 40
}
}

class SampleView: UIView {

override init(frame: CGRect) {
super.init(frame: frame)

let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "ViewController");
self.addSubview(controller.view);
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

}

但是在运行时我得到了一个 SIGABRT,我是否以正确的方式处理这个问题。我看到很多关于添加像这样的 Controller 的文章 - Adding View controllers as subview in Swift - 但请您帮我解决上述问题。

这是我的截图:

最佳答案

试试这个:

let controller = ViewController()

关于ios - Swift 实例化 UIViewController 并在同一文件中添加为 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44691134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com