通过按钮将一个视图链接到另一个视图

时间:2011-08-21 19:12:25

标签: iphone objective-c ios xcode4

我对iOS编程有点新意,我在通过按钮将一个视图链接到另一个视图时遇到了一些麻烦。我只是创建了一个简单的小应用程序,它在NSDate上进行一些计算,试图学习XCode和iOS编程。

我已经搜索过这一点了,我已经尝试从其他示例中学习但是我无法将视图呈现出来,当我按下我的按钮时没有任何反应(我已经检查过了链接到按钮)。

我一直无法理解视图编程,所以请耐心等待。

这是我的按钮代码:

-(IBAction)resultsPressed
{
    TimeResults *timeResults;
    timeResults = [[TimeResults alloc] initWithNibName:@"TimeResults" bundle:nil];
    [self.navigationController pushViewController:timeResults animated:YES];
    [timeResults release];
}

如果重要的话,TimeResults.xib正在使用导航控制器,而我的根视图只是一个视图。我这背后的想法是,我可以得到“后退”按钮(虽然我不确定这是否是正确的方法,因为它们不是同一层次结构的一部分)。关于如何做到这一点的任何建议将不胜感激!

2 个答案:

答案 0 :(得分:0)

您发布的代码似乎没有任何问题,但您应该将导航控制器与第一个笔尖关联,因为当新视图被推入堆栈时,默认情况下会显示后退按钮。

另外,请确保Navigation Controller中的AppDelegate设置正确。如果您启动新项目并选择“基于导航的应用程序”,则可以看到执行此操作的正确方法。如果您使用新项目作为示例向您展示如何正确设置旧项目,则必须确保nib也已正确设置。我建议使用新项目,将其挂钩为UIViewController而不是UITableViewController,然后将代码从旧项目移动到新项目。

最后,请确保始终导入要推送的.h UIViewController文件。希望有所帮助!

答案 1 :(得分:0)

要加载其他视图,请尝试

AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
TimeResults *timeResults = [[TimeResults alloc] initWithNibName:@"TimeResults" bundle:nil];
[delegate.window setRootViewController:timeResults];

希望它有效。 :)

相关问题