我对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正在使用导航控制器,而我的根视图只是一个视图。我这背后的想法是,我可以得到“后退”按钮(虽然我不确定这是否是正确的方法,因为它们不是同一层次结构的一部分)。关于如何做到这一点的任何建议将不胜感激!
答案 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];
希望它有效。 :)