2012-07-16 83 views
1

我正在使用X-code 4.3.2。 我創建了一個新的基於頁面的應用程序項目。 然後,我在dataViewController類中創建一個UIButton,以便在單擊該按鈕時跳轉到特定頁面。爲什麼我不能跳轉到UIPageView中的特定頁面?

這裏是我添加的簡單代碼。

//Create a button in dataViewController.h 
@property (strong, nonatomic) IBOutlet UIButton *btn; 

//Add button action 
-(IBAction)jump:(id)sender{ 
    RootViewController *root = [[RootViewController alloc]init]; 
    [root jump2page]; 
} 

在RootViewController的類

-(void)jump2page 
{ 
    DataViewController *targetViewController = [self.modelController viewControllerAtIndex:2 storyboard:self.storyboard]; 

    NSArray *viewControllers = [NSArray arrayWithObjects:targetViewController,nil]; 
    [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL]; 
} 

當我點擊一個按鈕的方法jump2page是call.It應該去頁3月份當月, 但沒有發生,當我點擊它

我是否忘記或錯過什麼?

+0

這與分頁滾動視圖相同嗎?在這種情況下,你可以設置currentPage屬性 – bkbeachlabs 2012-07-16 03:35:42

+0

我不知道我只是創建一個新項目。 然後選擇基於頁面的應用程序。 最後,我添加按鈕和它的動作。 – 2012-07-16 04:35:33

回答

0

我還有一個問題,搞清楚如何做一個頁面跳轉。而我所做的一切都是對我的無盡結束,甚至是聊天中提到的所有事情。使用你的方法,我能夠看到雖然已經發生了對該函數的調用,並且它也從模態視圖控制器中提取了數據。但它給了我一個空對象錯誤。何時設置視圖。所以我放了一些更多的診斷信息,看看發生了什麼,因爲我已經將所有可能發生的事情拼湊在一起。我所投入的所有數據都很流暢。問題是故事板對象由於某種原因而爲空,並且導致它在從故事板加載項目時失敗,即使它知道要加載哪一個,只要它可以告訴故事板上沒有任何內容,所以模態視圖傳回一個空的物體。然後它在主要的一箇中墜毀。所以這導致我試圖找出故事板對象爲什麼是空的。爲什麼它會提早釋放?是我的第一個問題,我想我會試着製作一份它的副本,這樣我們就可以使用那裏仍然沒有骰子的副本。然後一個想法在我們使用alloc和init的頂視圖控制器中打了我(感謝上帝),這就是你如何創建一個新對象。是否可以這樣做,而不是創建一個鏈接回到實際的根控制器,該命令創建了第二個根控制器,然後創建了第二個模態控制器,偏離了程序針對這些類類型的同一個類模板,並且正在傳遞函數調用對此。如果這樣的話,新的根視圖控制器就不會有第一個視圖控制器。也不會有任何影響它的能力,因爲它們是有效分離的對象。所以按照這個假設我意識到我又回到了重新開始,因爲我不能使用你的方法。但是另一個上帝給了靈光一閃,如果我將一個指向實際根視圖控制器的指針發送給頂視圖控制器並將指針用於回調,那該怎麼辦?所以我嘗試了這一點,並且終於看到了我的工作。

所以我落得這樣做在id類型的頂視圖控制器的.h這樣

@property (weak,nonatomic) id homebase; 

設置一個新的屬性,然後把這個在頂端視圖控制器.m文件

@synthesize homebase; 

然後回到根視圖控制器中,我修改了viewdidload以及旋轉觀察器的處理程序,以便在創建DataViewController的地方添加到此行中。

startingViewController.homebase=self; 

它將我在頂視圖控制器中定義的屬性設置爲實際根視圖控制器的地址。我所做的最後一件事是修改按鈕單擊事件

- (IBAction)pushedbutton:(UIButton *)sender 
{ 
    if (homebase==nil) 
    { 
     NSLog(@"no homebase"); 
     return; 
    } 
    [homebase jumpto:1]; 
} 

現在我發現,如果我使用的第一頁上(並將其值設置到其他頁面,然後1),那麼它就會跳轉到該頁面。如果我在任何其他頁面上使用它,它會吐出「沒有家鄉」,除非我旋轉設備,然後它會工作。

我試圖修改didFinishAnimating,看看我能在那裏拍的參考之後完成加載,因爲它是沒有必要的按鈕被點擊,直到不能發生,直到這個函數運行後,卻得到了進不去從那裏我可以看到的財產。

後一些更多的工作,我發現這裏的最後一步是修改的viewControllerAtIndex也採取了指針和存儲,並遞給回放上去之前對其進行設置數據視圖控制器上。那麼當它被一個空指針調用時,它將使用它存儲的那個。在這兩種類型的調用方式中,它有指針切換,然後一切都解決了。即使你翻頁,現在不先旋轉它。

相關問題