【问题标题】:Replace the TableView in a SplitViewController替换 SplitViewController 中的 TableView
【发布时间】:2012-01-22 23:04:54
【问题描述】:

我希望替换 UISplitViewController 的 MasterViewController 部分中的 UITableView。而不是UITableView,我只想要一个视图,这样我就可以在其中放置UIButtonsUILables 等。然后,这些按钮将控制 SplitView 的 DetailView 部分中显示的内容。

我在另一个地方问过这个问题,有人建议我创建一个UISplitViewController 的子类。这个人没有给出太多指导,除了保留 DetailViewController.h、.m 和 .xib 并根据我的喜好编辑 MasterViewController.h、.m 和 .xib。

以下是我已采取的步骤:

  • 创建了一个新项目并选择了“Master-Detail Application”
  • 未选中“使用情节提要”,以便我可以访问 xib 文件。
  • 打开“MasterViewController.xib”
  • 删除了“对象”下的“表格视图”
  • 将“视图控制器”添加到“对象”
  • 在“MasterViewController.h”中将“@interface MasterViewController:UITableViewController”更改为“@interface MasterViewController:UIViewController”
  • 注释掉“MasterViewController.m”下任何导致问题的内容,因为它们引用了不再存在的 TableView 的属性。

然后我收到此错误:-[UIViewController _loadViewFromNibNamed:bundle:] 加载了“MasterViewController”笔尖,但未设置视图出口。”

我在正确的轨道上吗?如果我是,有人可以帮我解决我遇到的错误吗?

否则,如果我做错了,有人能指出我正确的方向吗?

谢谢!

【问题讨论】:

  • 尝试将 UIView 而不是 UIViewController 添加到对象,然后将文件所有者的视图出口连接到该 UIView。
  • 成功了!我没想到这么快就有解决方案。谢谢!

标签: objective-c ios ipad uitableview uisplitviewcontroller


【解决方案1】:

现在,使用最新 Xcode 中的情节提要,这就是我所做的……

  1. 创建一个新的 Master-Detail 项目,并允许 storyboard
  2. 打开 MainStoryboard_iPad.storyboard
  3. 点击 TableViewController 然后删除它
  4. 拖入一个新的普通 ViewController
  5. 按住 ctrl-click-drag 从作为主视图控制器的导航控制器到您的新 ViewController
  6. 删除 MasterViewController.h/.m 文件,并创建一个新类,它是 UIViewController 的子类
  7. 取您刚刚创建的替换类的名称并将其放在身份检查器的自定义类部分的类名称中

现在,添加按钮并按照您想要的方式进行连接。如果您在细节部分坚持使用单个视图控制器,您应该能够直接引用 detailViewController 并根据需要填充它;对于倍数,您可能可以使用替换转场。

对于 iPhone,步骤类似。您必须按 ctrl-click-drag 从导航控制器到新的 ViewController 并以相同的方式设置替换 ViewController.h/.m 文件。按钮的转场将是推送转场,或者您可以简单地调用 performSegueWithIdentifier:sender: 。

【讨论】:

    猜你喜欢
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 2014-11-26
    • 2013-02-20
    • 2011-08-04
    • 2015-07-23
    • 2016-08-16
    相关资源
    最近更新 更多