- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在开发一个具有搜索功能的项目。我有 3 个 View Controller ,即 HomeViewController、SearchResultViewController 和 DetailViewController。
在主页上,我在导航栏中有一个搜索栏(使用 UISearchController )以及一些虚拟内容。这里重要的是我使用单独的 Controller (在我的例子中是 SearchResultController)来显示结果。这个 SearchResultController 实际上是 TableViewController 的子类,它在 tableview 中显示结果。到这里为止一切正常。
问题
现在,当我从结果中选择任何行时(即在 SearchResultViewController 中),我想打开另一个 View Controller (DetailViewController),我将在其中显示有关该所选项目的详细信息。这是一件非常简单的事情,但我被困在这里。
好的,继续我已经实现了 didSelectRowAtIndexPath 方法的问题,并且我正在调用 performSegueWithIdentifier 并且我收到错误“Receiver has no segue with identifier”,因为 storyboard 属性为 nil (它在文档中提到)。
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("storyboard property is \(self.storyboard)")
performSegueWithIdentifier(segueIdentifier, sender: indexPath.row)
}
注意:segueIdentifier 与 Storyboard上的相同。我得到 Storyboard属性为零。
我猜
当我点击搜索栏时,iOS 会在内部创建并加载 SearchResultController 的实例以显示结果,因此它的 Storyboard属性为 nil,因此我会收到上述错误。
有人可以解决这个问题或任何指向正确方向的指示。
最佳答案
如果您以编程方式创建 View Controller ,那么您应该像这样推送导航 Controller ,
UIViewController *vc = [[UIViewController alloc]init]; //your viewcontroller here
[self.navigationController pushViewController:vc animated:YES];
//or if you want to present it then
[self presentViewController:vc animated:YES completion:nil];
你不能执行 segue,因为没有 Storyboard就没有 segue
在 swift 中是这样的
let vc: UIViewController = UIViewController()
//your viewcontroller here
self.navigationController!.pushViewController(vc, animated: true)
//or if you want to present it then
self.presentViewController(vc, animated: true, completion: { _ in })
避免在swift中出现任何错误!!!
希望这会有所帮助:)
关于ios - 如何从动态创建的 Storyboard属性为 nil 的 UIViewController 中执行 SegueWithIdentifier(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37209610/
你能比较一下属性吗 我想禁用文本框“txtName”。有两种方式 使用javascript,txtName.disabled = true 使用 ASP.NET, 哪种方法更好,为什么? 最佳答案 我
Count 属性 返回一个集合或 Dictionary 对象包含的项目数。只读。 object.Count object 可以是“应用于”列表中列出的任何集合或对
CompareMode 属性 设置并返回在 Dictionary 对象中比较字符串关键字的比较模式。 object.CompareMode[ = compare] 参数
Column 属性 只读属性,返回 TextStream 文件中当前字符位置的列号。 object.Column object 通常是 TextStream 对象的名称。
AvailableSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。 object.AvailableSpace object 应为 Drive 
Attributes 属性 设置或返回文件或文件夹的属性。可读写或只读(与属性有关)。 object.Attributes [= newattributes] 参数 object
AtEndOfStream 属性 如果文件指针位于 TextStream 文件末,则返回 True;否则如果不为只读则返回 False。 object.A
AtEndOfLine 属性 TextStream 文件中,如果文件指针指向行末标记,就返回 True;否则如果不是只读则返回 False。 object.AtEn
RootFolder 属性 返回一个 Folder 对象,表示指定驱动器的根文件夹。只读。 object.RootFolder object 应为 Dr
Path 属性 返回指定文件、文件夹或驱动器的路径。 object.Path object 应为 File、Folder 或 Drive 对象的名称。 说明 对于驱动器,路径不包含根目录。
ParentFolder 属性 返回指定文件或文件夹的父文件夹。只读。 object.ParentFolder object 应为 File 或 Folder 对象的名称。 说明 以下代码
Name 属性 设置或返回指定的文件或文件夹的名称。可读写。 object.Name [= newname] 参数 object 必选项。应为 File 或&
Line 属性 只读属性,返回 TextStream 文件中的当前行号。 object.Line object 通常是 TextStream 对象的名称。 说明 文件刚
Key 属性 在 Dictionary 对象中设置 key。 object.Key(key) = newkey 参数 object 必选项。通常是 Dictionary 
Item 属性 设置或返回 Dictionary 对象中指定的 key 对应的 item,或返回集合中基于指定的 key 的&
IsRootFolder 属性 如果指定的文件夹是根文件夹,返回 True;否则返回 False。 object.IsRootFolder object 应为&n
IsReady 属性 如果指定的驱动器就绪,返回 True;否则返回 False。 object.IsReady object 应为 Drive&nbs
FreeSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。只读。 object.FreeSpace object 应为 Drive 对象的名称。
FileSystem 属性 返回指定的驱动器使用的文件系统的类型。 object.FileSystem object 应为 Drive 对象的名称。 说明 可
Files 属性 返回由指定文件夹中所有 File 对象(包括隐藏文件和系统文件)组成的 Files 集合。 object.Files object&n
我是一名优秀的程序员,十分优秀!