- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 TableViewController 和 ViewController 之间的 segue 传递两个字符串值,其中包含“Bar Name”及其各自的“Street Name”的值。我正在使用一个名为 HomeController
的类和另一个名为 BarPage
的类。我为主屏幕准备了以下代码,它是一个 TableView Controller 持有单元格,单击时应该执行我在 Storyboard上包含的转场。我删除了一些多余的代码来解释这个问题:
import UIKit
import Firebase
class HomeController: UIViewController, UITableViewDelegate, UITableViewDataSource{
let barsArray = [Data(image: "bar1", street: "123 North Street"),
Data(image: "bar2", street: "345 South Street"),
Data(image: "bar3", street: "678 West Street")]
let tableView: UITableView = {
let tv = UITableView()
tv.separatorStyle = .none
tv.allowsSelection = true
return tv
}()
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return barsArray.count
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 100
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! BarCell
cell.barImageView.image = UIImage(named: barsArray[indexPath.item].image!)
cell.barCoverLabel.text = "Street: " + barsArray[indexPath.item].street!
return cell
}
var locationName : String?
var locationStreet : String?
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let barPage = segue.destination as! BarPage
barPage.barName = locationName!
barPage.barStreet = locationStreet!
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
locationName = self.barsArray[indexPath.row].image
locationStreet = self.barsArray[indexPath.row].street
// WHEN USER PRESSES A ROW, PERFORM SEGUE
performSegue(withIdentifier: "mySegue", sender: self)
// Then enter the second view controller
present(BarPage(), animated: true, completion: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.backgroundColor = .black
setUpTableView()
}
func setUpTableView(){
tableView.dataSource = self
tableView.delegate = self
tableView.register(BarCell.self, forCellReuseIdentifier: "cell")
view.addSubview(tableView)
.... add anchors and constraints for table view ..........
}
}
var home: HomeController?
class BarCell: UITableViewCell{
... add custom styling for each cell of the table view ....
override init(style: UITableViewCellStyle, reuseIdentifier: String?){
super.init(style: style, reuseIdentifier: reuseIdentifier)
setup()
}
func setup(){
.......... add anchors and constraints for the cell..........
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
这是来自 View Controller BarPage
的代码,应该从他的 segue 中检索字符串。
import UIKit
import Firebase
class BarPage: UIViewController{
let homeController = HomeController()
// These, in theory, should be the variables that retrieve the strings through my segue
var barName = String()
var barStreet = String()
public let barStreet: UILabel = {
var label = UILabel()
label.text = "The street is: "// + barStreet
label.textColor = .black
label.font = UIFont.boldSystemFont(ofSize: 16)
return label
}()
let barImage: UIImageView = {
let iv = UIImageView()
iv.image = UIImage(named: barName) // Should retrieve the image based on the string that is passed
iv.contentMode = .scaleAspectFill
iv.backgroundColor = .yellow
//iv.clipsToBounds = true
return iv
}()
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.mint()
view.addSubview(barStreet)
view.addSubview(barImage)
positionElements()
}
func positionElements(){
.......... add anchors and constraints for the elements..........
}
}
如果我在不包含 segue 的情况下运行我的代码,转换工作正常。但是,如果我包含 Segue,则会出现以下错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: 'Receiver (<ProjectName.HomeController: 0x7f9fcec0fb10>) has
no segue with identifier 'mySegue''
如果我的 Storyboard中确实有一个带有该标识符的 segue,这怎么可能呢?这是我的 Storyboard的图片,其中显示了我正在使用的标识符:
如您在右侧所见,相同的标识符与我 Storyboard中的 segue 匹配,但我的错误表明找不到它。我该如何解决这个问题?发生这种情况是因为我试图从 TableViewController 执行 Segue 吗?对于任何含糊之处,我深表歉意,成为 Swift 用户的第一个月。任何能为我指明正确方向的提示/建议都将非常有帮助。
最佳答案
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "mySegue", sender: indexPath.row)
}
关于ios - Swift - 在 TableViewController -> ViewControllers 之间的简单 Segue 期间出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48129574/
在我正在处理的当前项目中,我需要在 View 之间传输变量。我成功地将变量从 tableviewcontroller 传输到 UIviewcontroller,如下所示。 if segue.ident
我在将数据从 TableViewController 传递到嵌入 Container View 中的另一个 TableViewController 时遇到问题。当我在 prepareForSegue
我看过但没有找到合理的答案。我有第一个 TableViewController 可以容纳 4 行,当用户点击一行(导航层次结构)时,我想传递给第二个 tableViewController 一个字符串
我有一个正在创建的表单 此表单填充了用户输入的文本字段。回答完所有问题后,会弹出一个按钮进行保存。 我在让此 tableviewcontroller 将数据传递给新的 tableviewcontrol
我有一个带有搜索栏的表格 View 。搜索栏返回用户名包含搜索栏中文本的 PFUser。该部分工作正常,并且获取的用户显示在 TableView 中。当用户点击表格 View 单元格时,我想转到另一个
我正在开发一个基于日期的应用程序。我正在尝试获取从一个 TableViewController 传递到另一个 TableViewController 的信息。 这是一个基于通知的应用程序,可以提醒用户
我正在尝试从一个 TableViewController 中选择一个详细信息披露按钮(或一行)并转到另一个 TableViewController,而不将任何数据从第一个 TableViewContr
我正在尝试通过委托(delegate)将 TableView Controller B 中的图标和名称传递给 View Controller A。 为了简单起见,向用户展示了 ViewControll
我一直在尝试将一些数据(String)从TableViewController传递到嵌入在容器。 在 MainTableViewController 中我有以下代码: let vc = SecondT
这个问题已经有答案了: Passing data between view controllers (44 个回答) 已关闭 6 年前。 我有一个UITableViewController在列表中显示
据我了解,我无法使用 socket 连接将单元格中的按钮连接到我的 TableViewController。 不过,我可以使用操作连接将单元格中的按钮连接到我的 TableView。这是我巨大问题的根
我一直在努力切换 viewController。 我得到了以下 Storyboard: 左上角的 VC 是登录 VC,它通过模态 Segue 将 View 推送到 MainViewController
我有一个嵌入在 UINavigationController 中的 UITableView。我在 Storyboard中设置了一个 rightBarButtonItem 。如果我以正常方式继续,一切都
当detailText大于3行时,tableViewCell的标题标签总是被切掉,而detailText仅部分显示。我已设置 rowHeight 和 estimatedRowHeight,但结果保持不
我有以下问题: 我有一个应用程序,它使用两个 tableViewController。第一个 TableViewController 列表 struct Task{ let type: Stri
class SelectionBoxViewController: UITableViewController,UISearchBarDelegate { var searchbar = UI
我是 swift 的初学者,但我在 HTML、CSS 和一些 Java 方面确实有不错的背景。我创建这个帐户实际上只是为了问这个问题,所以我会开门见山。 我真的很喜欢 swift,但我真的花了一周的时
有没有办法将statusbar lightcontent颜色设置为UITableViewController? 好像没有这个功能 override open var preferredStatusBa
场景 |第一个单元 | |第二个细胞||开关 || | |第三单元 ||文本字段 | 我创建了一个包含三个不同类的动态表格 View :SecondTableCell(其中有一个开关的导出)和Thir
我正在将图像从 RESTApi 加载到 Netflix(例如 ScrollView)中。 func collectionView(_ collectionView: UICollectionView,
我是一名优秀的程序员,十分优秀!