代码之家  ›  专栏  ›  技术社区  ›  letsCode

故事板未找到,viewcontrollers用modal

  •  0
  • letsCode  · 技术社区  · 6 年前

    我有一个launchscreen.storyboard和一个main.storyboard

    在我的Main.storyboard中,Main storyboard有我的欢迎屏幕我还有另外两个视图控制器。

    流是主流(情节提要)->项结果(VC)->项单一视图(VC)

    从main到其中一个viewcontrollers,我执行以下操作。

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let itemResults = storyboard.instantiateViewController(withIdentifier: "ItemResults") as! ItemResultsViewController
    itemResults.itemDescriptionData = self.itemDescription.text!
    self.present(itemResults, animated: false, completion: nil)
    

    这将带我从Main到ItemResults,并传递一个字符串在ItemResults(VC)中,我有一个TableView我要做的是当你点击单元格时,它从单元格中收集信息,打开一个模式并在其中显示与被点击单元格相关的信息。

    那个序列看起来是这样的

    let storyboard = UIStoryboard(name: "ItemResults", bundle: nil)
    let singleItemResult = storyboard.instantiateViewController(withIdentifier: "ViewSingleItem") as! ViewSingleItem 
    singleItemResult.theItemID = selectedItem.itemID
    self.present(singleItemResult, animated: true, completion: nil)
    

    然后我得到以下错误。

    '在捆绑包nsbundle中找不到名为'itemresults'的情节提要

    我知道为什么我会犯这个错误,因为itemsresults不是故事板,而是风投做了研究之后,我可以使用故事板参考,但之后我必须重新设计我的布局…而且他们做起来并不好玩。

    为什么这是个问题在上面的第二个序列中,如果我将itemsresults更改为Main,它就会工作,问题是,当我单击它时,会显示模式,但随后应用程序会再次显示主屏幕,并且它不会停留在itemsresults上。

    有人能帮忙吗?谢谢!啊!

    添加didSelect

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath as IndexPath, animated: true)
        tableView.isUserInteractionEnabled = true
        let selectedItem = self.currentItemsArray[indexPath.row]
        print(selectedItem.itemID)
    }
    

    我通过在脚本中从tableview单元格向新的viewcontroller添加一个sequer来“修复”这个问题。我给了那个seque一个id并做了下面的方法。

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if  segue.identifier == "ShowItemDetailsSeque",
            let destination = segue.destination as? ViewSingleItem,
            let itemIndex = tableView.indexPathForSelectedRow?.row
        {
            let selectedItem = self.currentItemsArray[itemIndex]
            destination.theItemID = selectedItem.itemID
            print(selectedItem.itemTitle)
    
        }
    }
    
    0 回复  |  直到 6 年前