我在将var
Count, Index, N: Int64;
....
Count := Length(BigArray);
Index := 0;
while Count > 0 do begin
N := Min(Count, 8192);
stream.WriteBuffer(BigArray[Index], N*SizeOf(BigArray[0]));
inc(Index, N);
dec(Count, N);
end;
与表格视图view controllers
关联时遇到问题。基本上我的cells
中有4个cells
,并且我希望每个单元格在Table View
点击时单独present
。
以下是我的快捷代码:
view controller
这是我的故事板,你可以看到我有4 import UIKit
var orchard = ["Dog", "Cat", "Bird", "Fish"]
var myIndex = 0
class AnimalList: UITableViewController {
// MARK: - Table view data source
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return orchard.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = orchard[indexPath.row]
return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
myIndex = indexPath.row
performSegue(withIdentifier: "segue", sender: self)
}
}
我想要连接到4 view controllers
。
storyboard
PS:我的table view cells
已嵌入table view controller
。
我该怎么做?谢谢!
答案 0 :(得分:2)
为四个ViewControllers
提供一个segue,并将其命名为vc1Segue
,vc2Segue
,vc3Segue
,vc3Segue
并更改您的didSelectRowAt
方法,如下所示
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
myIndex = indexPath.row
switch myIndex {
case 0:
performSegue(withIdentifier: "vc1Segue", sender: self)
case 1:
performSegue(withIdentifier: "vc2Segue", sender: self)
case 2:
performSegue(withIdentifier: "vc3Segue", sender: self)
case 3:
performSegue(withIdentifier: "vc4Segue", sender: self)
default:
print("Index greater than vcs")
}
}
答案 1 :(得分:2)
TableViewController
嵌入Navigation Controller
(很可能,您已经做过)。TableViewController
点击Right Mouse
按住并将其放入视图控制器,释放并选择手动搜索 - >显示答案 2 :(得分:2)
刚才我完成了你的要求的演示项目,它完美地运作。
步骤1:准备好你的故事板,如下图所示。
步骤2:将故事板标识符作为dogID,catID,birdID,fishID提供给相应的viewController,如下图所示。 step3:在拱形数组的正下方声明一个带有上述标识符的数组。
$data = http_build_query(array("enable"=> 1));
if( $curl = curl_init() ) {
curl_setopt($curl, CURLOPT_URL, BASE_URL .'users/2');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_PUT, true); // execution time 1.5 min
//curl_setopt ($ curl, CURLOPT_CUSTOMREQUEST, "PUT"); - execution time 1 sec
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$out = json_decode(curl_exec($curl));
curl_close($curl);
}
第4步:修改didSelectRowAt方法,如下面的代码片段所示。
var storyboardIds = ["dogID","catID","birdID","fishID"]
答案 3 :(得分:1)
通过ctrl +右键单击并从表视图控制器拖动到每个视图控制器,为4个视图控制器中的每一个创建一个segue。给segue一个标识符(例如“TableToViewController1”,“TableToViewController2”等)
然后在你的didSelectRowAt
做类似的事情:
var segueIdentifier = ""
switch(indexPath.row) {
case 0: // first cell is selected
segueIdentifier = "TableToViewController1"
case 1:
segueIdentifier = "TableToViewController2"
case 2:
segueIdentifier = "TableToViewController3"
case 3:
segueIdentifier = "TableToViewController4"
}
performSegue(withIdentifier: segueIdentifier, sender: self)
答案 4 :(得分:0)
你可以在你的
中做些什么override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
myIndex = indexPath.row
performSegue(withIdentifier: "segue", sender: self)
}
func
您可以根据index
所需的present
来查看viewController
{。}}。
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
myIndex = indexPath.row
if let animal = orchard[indexPath.row] as String? {
if animal == "dog" {
performSegue(withIdentifier: "dogViewController", sender: self)
}
}
}
在storyboard
中,您可以从segue
创建一个viewController
到{ur了viewControllers
,并使用dogViewController
之类的内容命名segues。