2010-09-10 66 views
0

我对此感到沮丧。iPhone中的连续(非分层)导航

我想创建一个iPhone应用程序来显示事件的列表,每个'屏幕'的一天。我想要一个位于顶部的'next'和'prev'按钮,让我可以明天或者昨天去。

它是不是一个UINavigationController风格的导航,因为导航不是分层的。因此,我认为我不应该使用pushViewController:方法,就像许多示例和教程所示。

我认为appdelegate类应该删除当前视图并创建一个新的viewcontroller并查看并将其添加到窗口中。然而,我无法实现它的工作。此外,我想很好的过渡。

有人可以指向我可以看的代码示例吗?

谢谢。

P.D.我的问题与this one类似,但没有有用的答案。

回答

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方法,此方法。

毕竟不是那么难!

0

我不会挂在视图控制器上这么多。视图控制器/视图对偶有时会阻碍构建自定义接口。

你需要的是一个带有两个按钮的UIToolbar,以及为你的实体适当地配置的有序UIView对象数组。

然后当按钮被点击时,简单的[UIVIew动画]应该完成工作。

我不会为你写代码。任何对UIView动画组件构建的随意分析都会指引您。

我可以告诉你的唯一真实情况是,为iPhone构建了复杂的界面,最大的学习曲线是知道何时何时不使用UIViewController而不使用UIView。这很棘手,因为大多数标准的苹果组件都使用Controller。

+1

谢谢。我不想让任何人为我写代码。我只是想在做一些与记录的SDK示例不同的东西之前进行仔细检查。 – tato 2010-09-10 16:30:02