2010-09-10 93 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