gpt4 book ai didi

ios - 如何在 SWIFT 中从 UIView 实例化 ViewController

转载 作者:行者123 更新时间:2023-11-28 13:15:41 25 4
gpt4 key购买 nike

我正在尝试从我的 UiView 初始化 View Controller 。但是我在 self.presentViewController(vc, animated: true, completion: nil) 线上收到错误。单击表格行后,我试图显示另一个 View Controller 。我已经初始化了 Storyboard。

import UIKit

class CustomSwipeOut: UIView , UITableViewDataSource , UITableViewDelegate {

var label: UILabel = UILabel()
var myNames = ["item1","item2","item3"]

override init(frame: CGRect) {
super.init(frame: frame)
self.addCustomView()
}

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

func addCustomView()
{
//add blank subview to the view
var blankView : UIView = UIView(frame: CGRectMake(0, 0, 300, 100))
blankView.backgroundColor = UIColor.greenColor()
self.addSubview(blankView)

//creating a tableview programmatically
var tblView : UITableView = UITableView()
tblView.frame = CGRectMake(0, 100, 300, 200)
self.addSubview(tblView)
tblView.delegate = self
tblView.dataSource = self
tblView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "myCell")

}

//pragma mark- table view data source methods
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

var cell : UITableViewCell = tableView.dequeueReusableCellWithIdentifier("myCell") as UITableViewCell
cell.textLabel?.text = self.myNames[indexPath.row]
return cell
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.myNames.count
}

//pragma mark - table view delegate methods

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

switch indexPath.row {
case 0:
println("index o clicked")
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("MoneySum") as UIViewController
self.presentViewController(vc, animated: true, completion: nil)
case 1:
println("index 1 clicked")
case 2:
println("index 2 clicked")
default:
println("no index")
}
}
}

最佳答案

presentViewController:animated:completion: 是仅为 UIViewController 定义的方法,而不是 UIView ( see Apple doc here )。

您的 UIView 可能位于由 UIViewController 管理的 View 层次结构中。
一种解决方案是使用对该父 UIViewController 的引用并对其调用 presentViewController:animated:completion:

关于ios - 如何在 SWIFT 中从 UIView 实例化 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29094106/

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