如何在iApp中显示我的信息视图

时间:2010-08-06 13:16:17

标签: iphone objective-c xcode interface-builder

在编写我的救生应用程序之前,我正在编写我的第一个iPhone应用程序,一个测试用例,以帮助我了解在此平台上完成的工作。所以我使用标准的ModelViewController小部件并创建了我的应用程序。我将我的UI放在默认视图中,并在ViewController.m / .h文件中添加了所有粘合代码:事件处理程序,IBOutlet映射以更改控件的状态等。这一切都运行得非常好并且不需要太长时间做。

现在我想在我的应用程序中添加一个信息页面。我在主页面添加了 i 按钮,并将其映射到空处理程序toggleCreditsOpen:,然后为我的项目“info.xib”创建了一个新视图。我打开界面构建器并根据自己的喜好设置我的视图(虽然我更喜欢如果可以动态加载信用而不是直接在视图中加载,我会担心以后因为我很确定它很容易更改文本,我只是希望从本地化的资源文件加载同样容易,但这不是我的问题)。我在我的info.xib中创建了一个 Done 按钮,并将其映射到另一个处理程序toggleCreditsClosed。所以现在我有两个空处理程序:一个是按下信息按钮,一个是按下信息窗口中的完成按钮时:

- (IBAction) toggleCreditsOpen: (id) sender {
    // ???
}

- (IBAction) toggleCreditsClosed: (id) sender {
    // ???
}

如果有人能解释这两个功能的内容,我将不会是唯一感激的人,因为我会将这些说明放在即将发布的博客文章中,说明如何做到这一点,以便人们不必反对像我这样的桌子试图将最后的触摸放到他们的应用程序:积分!

1 个答案:

答案 0 :(得分:0)

首先,您应该为信息视图提供单独的视图控制器类(最佳实践)。 根据您希望如何呈现信息视图,您的问题有不同的答案。

假设您为信息视图控制器创建了另一个类,标准方法是使用presentModalViewController:animated:

- (IBAction) toggleCreditsOpen: (id) sender {
    InfoViewController *info = [[InfoViewController alloc] initWithNibName:@"info" bundle:[NSBundle mainBundle]];
    [self presentModalViewController:info animated:YES];
    [info release];
}

将另一个方法移动到InfoViewController类:

- (IBAction) toggleCreditsClosed: (id) sender {
    [self.parentViewController dismissModalViewControllerAnimated: YES];
}

所以你必须创建两个新文件:InfoViewController.h,InfoViewController.m 您必须在info.xib中将File的所有者设置为InfoViewController类(它位于File所有者的检查器中的标识选项卡上),并在那里设置视图插座和按钮操作。