设置基于拆分视图的基本应用程序

时间:2012-07-06 19:31:00

标签: objective-c uisplitviewcontroller

我正在尝试为基于拆分视图的应用程序创建基础,因为在过去的几天里,我花了一些时间查看并尝试了不起作用,不完整或过时的教程。 / p>

我应该遵循哪些步骤,并在完成基本设置之后:

  1. 如何更改工具栏上按钮的名称?
  2. 我想要包含一个弹出式菜单;如何更改该菜单顶部的名称?

1 个答案:

答案 0 :(得分:4)

本教程适用于初学者。如果您已经在Objective-c中编码了一段时间,那么您可能无法在这里学到任何东西。

在本教程之后,您将拥有一个基于拆分视图的应用程序,其中包含三个(或更多)不同的视图,以及用于浏览应用程序的弹出菜单。

第1步:获取一些Apple代码

从Apple获取(下载)MultiDetailsView示例代码。 http://developer.apple.com/library/ios/#samplecode/MultipleDetailViews/Introduction/Intro.html

enter image description here

此代码为我们提供了一个基于splitview的应用程序,其中包含2个不同的视图。除非你不知道这个代码存在,否则这没什么大不了的。


第2步:确保一切正常

在Xcode中打开项目。构建,然后运行项目以确保一切正常。当我尝试构建并运行应用程序时,我遇到了这个错误:

XCode could not find a valid private certificate/valid key-pair for this profile in your keychain

我意识到我的证书已经过时了(我猜这只是曝光,因为代码直接来自苹果?)。如果碰巧遇到同样的问题,请查看this主题。或者,您也可以从应用程序商店下载Xcode的最新版本。

无论如何,如果一切正常,您应该有以下两种观点: enter image description here enter image description here


第3步:添加我们自己的观点

Part a :创建文件

现在是时候添加更多观点了(这可能是你正在寻找的)。

转到文件 - >新文件......

如果你正在使用 Xcode 4 :选择Objective-C Class,那么对于子类选择UIViewController,并确保' Targeted For iPad'和'使用XIB用户界面'检查。 enter image description here

如果你正在使用 Xcode 3 :选择UIViewController子类,然后选中“针对iPad'和#39;使用XIB进行用户界面'

enter image description here

文件将显示在左侧菜单中,如果它们位于错误的位置,您可以将它们拖到相应的目录中(.h和.h应该在Classes下,并且.xib应该是在资源下)。

enter image description here

首先,将SecondDetailViewController.h的内容复制到.h文件,然后将SecondDetailViewController.m的内容复制到.m文件中。确保它最初说SecondDetailViewController的任何地方,它现在都有你文件的名称。

我的.h档案: enter image description here

我的.m文件: enter image description here


B部分:RootViewController.m内容

接下来,打开RootViewController.m

目前,正在导入3个原始.h文件。我们需要添加我们刚刚创建的那个。

enter image description here

接下来,向下转到tableView方法,并将返回值从2更改为3.每次添加新视图时,都需要增加此数字! (即,如果您在完成本教程后添加了另一个视图,请将其更改为4)。从本质上讲,此方法只返回您拥有的视图数量。

enter image description here

正下方的方法可以处理菜单中显示的内容。我们需要在这里做一些改变。由于我们正在为if / else语句添加另一个选项,因此必须将原始else更改为if else,并且我们必须提供一个条件,在我们的示例中只是检查是否它是第二行(在索引1处)(indexPath.row == 1)

enter image description here

下一个方法处理要显示的视图。添加另一个if语句。在第一行中,我将YourViewHereViewController设置为绿色,您应该具有.h / .m文件的名称。然后,我有@"YourViewHereViewController"红色,你应该有.xib文件的名称。

enter image description here


C部分:xib

最后但并非最不重要的是,我们需要处理我们的xib文件。首先打开SecondDetailView.xib并复制视图。然后将其粘贴到您创建的.xib文件中(删除可能存在的任何内容)。您可以通过双击文本来更改视图的标题。

enter image description here

最后要做的是行连接。按住Control键并单击文件的所有者,然后将其拖动到工具栏并选择toolBar(这就是RootController按钮在工具栏上的显示方式)。

enter image description here

再次按住Control键并单击文件所有者,然后将其拖到视图中并选择视图。

enter image description here


如果你现在运行它,一切都应该工作!


以下是我在此之后的一些问题:

问:如何更改工具栏上按钮的名称? 答:工具栏(以及因此按钮)是从RootViewController.m文件控制的,查找此方法

- (void)splitViewController:(UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController:(UIPopoverController*)pc {

    // Keep references to the popover controller and the popover button, and tell the detail view controller to show the button.
    barButtonItem.title = @"Root View Controller";
    self.popoverController = pc;
    self.rootPopoverButtonItem = barButtonItem;
    UIViewController <SubstitutableDetailViewController> *detailViewController = [splitViewController.viewControllers objectAtIndex:1];
    [detailViewController showRootPopoverButtonItem:rootPopoverButtonItem];
}

注意barButtonItem.title = @"Root View Controller";,将@更改为您想要的任何内容!注意:如果您将此字段留空,则该按钮不会出现!

问:如何更改弹出菜单顶部的名称? enter image description here

答:添加以下行以声明/更改名称。 self.title = @"Menu";,在您的RootViewController.m文件中,- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {方法。

enter image description here

相关问题