Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在单个viewController中管理表视图行?_Ios_Swift_Model View Controller_Swift Protocols - Fatal编程技术网

Ios 如何在单个viewController中管理表视图行?

Ios 如何在单个viewController中管理表视图行?,ios,swift,model-view-controller,swift-protocols,Ios,Swift,Model View Controller,Swift Protocols,假设我有一个tableView,其中有20行包含数据(例如:联系人姓名),每当点击任意一行时,它都会显示另一个包含联系人姓名详细信息的表视图,到目前为止,我已经创建了两个表视图,一个用于“联系人姓名”,另一个用于“联系人详细信息” (仅限一排) 但问题是,如果我继续为每一行细节创建ViewController,我最终将拥有20个独立的控制器,这将使情节提要变得庞大而混乱,因此我搜索了一些好的技术来简化此过程,但还没有找到更好的方法。 任何人都可以推荐一些现成的或藏在腰带下的……) 您不必创建20

假设我有一个tableView,其中有20行包含数据(例如:联系人姓名),每当点击任意一行时,它都会显示另一个包含联系人姓名详细信息的表视图,到目前为止,我已经创建了两个表视图,一个用于“联系人姓名”,另一个用于“联系人详细信息” (仅限一排)

但问题是,如果我继续为每一行细节创建ViewController,我最终将拥有20个独立的控制器,这将使情节提要变得庞大而混乱,因此我搜索了一些好的技术来简化此过程,但还没有找到更好的方法。
任何人都可以推荐一些现成的或藏在腰带下的……)

您不必创建20个ViewController,只需要2个。第一个用于“联系人列表”,第二个用于详细信息。您只需使用
prepareforsgue
方法将一个联系人传递给Detail ViewController,然后在其中显示其数据。您可以为每个联系人重新使用详细视图控制器


准备分段:

您不需要在StoreyBoard中为每个项目创建单独的控制器。 您所需要的只是创建一个控制器并调用
performsguewithidentifier
或调用:

let viewController = storyboard?.instantiateViewController(withIdentifier: "storyboardIdentifier") as! SomeViewController
navigationController?.pushViewController(viewController, animated: true)
viewController.configure(yourDetails)

其中,
configure(yourDetails)
是您的配置方法,您可以在其中传递详细信息

显示您尝试过的代码,而不是20个单独的视图控制器,您只需要一个通用的viewcontroller就可以将数据传递给它