相关疑难解决方法(0)

Xcode,在哪里分配segue标识符

请原谅我的初学者问题.我知道我可以像这样切换到另一个屏幕(ViewController)

self.performSegueWithIdentifier ("SecondViewController", sender: self)
Run Code Online (Sandbox Code Playgroud)

但我似乎无法找到在哪里指定我的第二个屏幕的id,我只是找到了Storyboard ID,是吗?

我已经尝试过,只是因为以下错误而收到了崩溃:

Receiver()没有带标识符'SecondViewController'的segue

任何的想法?谢谢

xcode ios uistoryboard uistoryboardsegue swift

12
推荐指数
1
解决办法
2万
查看次数

在没有故事板的情况下创建和执行segue

我有一个没有故事板的应用程序,所有UI创建都是用代码制作的,我得到了一个splitView我可以在iPhone上使用的应用程序,因为该应用程序最初是专为iPad设计的,所以当你在列表中选择一行时Master视图它在iPhone上没有任何作用,但在iPad上工作正常.

所以我的问题是我可以创建并执行允许在didSelectRowAtIndexPath方法上显示详细信息视图的segue 吗?

这是我到目前为止所做的:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        let segue = UIStoryboardSegue(identifier: "test", source: self, destination: detailViewController!)
        performSegueWithIdentifier("test", sender: self)
    }
Run Code Online (Sandbox Code Playgroud)

但是当运行并选择一行时,应用程序崩溃告诉它需要一个执行处理程序,所以我添加了这个:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        let segue = UIStoryboardSegue(identifier: "test", source: self, destination: detailViewController!, performHandler: { () -> Void in
                let object = self.fetchedResultsController.objectAtIndexPath(indexPath)
                let controller = self.detailViewController!
                controller.detailItem = object
                controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem()
                controller.navigationItem.leftItemsSupplementBackButton = true


        })
        performSegueWithIdentifier("test", sender: self)
    }
Run Code Online (Sandbox Code Playgroud)

现在当选择一行时,xcode表示没有带有这种标识符"test"的segue.

我也尝试通过调用它segue.perform()并将performHandler内容添加到prepareForSegueMethod中:

 if …
Run Code Online (Sandbox Code Playgroud)

iphone xcode ios swift

9
推荐指数
1
解决办法
8811
查看次数

标签 统计

ios ×2

swift ×2

xcode ×2

iphone ×1

uistoryboard ×1

uistoryboardsegue ×1