我想替换 UISplitViewController
的 MasterViewController 部分中的 UITableView
。我只需要一个 View ,而不是 UITableView
,这样我就可以在其中放置 UIButtons
、UILables
等。然后,这些按钮将控制 SplitView 的 DetailView 部分中显示的内容。
我在另一个地方问过这个问题,有人建议我创建一个 UISplitViewController
的子类。除了保留 DetailViewController.h、.m 和 .xib 并根据我的喜好编辑 MasterViewController.h、.m 和 .xib 之外,此人没有给出太多指导。
以下是我采取的步骤:
- 创建一个新项目并选择“Master-Detail Application”
- 取消选中“使用 Storyboard”以便我可以获取 xib 文件。
- 打开“MasterViewController.xib”
- 删除了“对象”下的“ TableView ”
- 将“ View Controller ”添加到“对象”
- 在“MasterViewController.h”中将“@interface MasterViewController : UITableViewController”更改为“@interface MasterViewController : UIViewController”
- 注释掉“MasterViewController.m”下导致问题的所有内容,因为它们引用了 TableView 的属性,而这些属性已不存在。
然后我收到此错误:-[UIViewController _loadViewFromNibNamed:bundle:]
加载了“MasterViewController” Nib ,但未设置 View 导出。”
我走在正确的轨道上吗?如果是,有人可以帮我解决我遇到的错误吗?
否则,如果我做错了,有人能给我指出正确的方向吗?
谢谢!
最佳答案
现在,在最新的 Xcode 中使用 Storyboard,这就是我所做的......
- 创建一个新的 Master-Detail 项目,并允许 Storyboard
- 打开 MainStoryboard_iPad.storyboard
- 点击 TableViewController 然后删除它
- 拖入一个新的普通 ViewController
- 按住 Ctrl 键并单击并从作为主视图 Controller 的导航 Controller 拖动到新的 ViewController
- 删除 MasterViewController.h/.m 文件,并创建一个新类,它是 UIViewController 的子类
- 将刚刚创建的替换类的名称放入身份检查器的自定义类部分的类名中
现在,添加按钮并按照您想要的方式进行连接。如果你在细节部分坚持使用单个 View Controller ,你应该能够直接引用 detailViewController 并根据需要填充它;对于倍数,您可能可以使用 replace segues。
对于 iPhone,步骤类似。您必须按住 Ctrl 并单击从导航 Controller 拖动到新的 ViewController 并以相同的方式设置替换 ViewController.h/.m 文件。来自按钮的转场将是推送转场,或者您可以简单地调用 performSegueWithIdentifier:sender: 。
关于objective-c - 替换 SplitViewController 中的 TableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8965531/