我对此感到沮丧。
我想创建一个iPhone应用程序来显示事件列表,每个“屏幕”一天。我想在顶部有一个“下一个”和“上一个”按钮,可以让我明天或昨天去。
不 UINavigationController样式导航,因为导航不是分层的。因此,我不认为我应该使用pushViewController:方法,正如许多示例和教程所示。
我认为appdelegate类应该删除当前视图并创建一个新的viewcontroller并查看并将其添加到窗口中。但是我无法让它发挥作用。我也想要很好的过渡。
有人可以指向我可以查看的代码示例吗?
谢谢。
Pd积。我的问题类似于this one ,但没有有用的答案。
答案 0 :(得分:0)
我不会那么多地挂在视图控制器上。视图控制器/视图二元性有时会妨碍构建自定义接口。
你需要的是一个带有两个按钮的UIToolbar,以及为你的实体配置的UIView对象的排序数组。
然后当点击按钮时,简单的[UIVIew动画]应该完成工作。
我不会为你编写代码。任何对UIView动画组件构建的随意分析都会指引您前进。
我可以告诉你的唯一真实的事情是,为iPhone构建了复杂的界面,最大的学习曲线是知道何时何时不使用UIViewController而不是UIView。这很棘手,因为大多数标准苹果组件都使用Controller。
答案 1 :(得分:0)
现在它有效。只是缺少一些细节。我会在这里留下答案,以便其他人可以评论或使用它。
在AppDelegate类中,我添加了这个方法:
-(void) navigateToDay:(NSDate*) newDay fromDay:(NSDate*) currentDay
{
UIViewAnimationTransition transition = ([newDay compare:currentDay]<0)? UIViewAnimationTransitionCurlDown :
UIViewAnimationTransitionCurlUp;
SequentialNavigationViewController* newController = [[SequentialNavigationViewController alloc] initWithNibName:@"SequentialNavigationViewController" bundle:nil];
newController.app = self;
newController.currentDay = newDay;
[newController.view setFrame:[[UIScreen mainScreen] applicationFrame]];
[UIView beginAnimations:@"transition" context:NULL];
[UIView setAnimationDuration:0.50];
[UIView setAnimationTransition:transition forView:self.window cache:YES];
[window addSubview:newController.view];
[self.viewController.view removeFromSuperview];
[UIView commitAnimations];
self.viewController = newController;
[newController release];
}
我从SequentialNavigationViewController prevButtonClicked和nextButtonClicked方法中调用此方法。
毕竟不是那么难!