2011-08-21 177 views
0

我對編程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

您發佈的代碼沒有任何問題,但您應該將導航控制器與第一個筆尖相關聯,因爲當將新視圖壓入堆棧時,後退按鈕將默認顯示。

此外,請確保Navigation Controller已在您的AppDelegate中正確設置。如果您啓動新項目並選擇「基於導航的應用程序」,則可以看到正確的方法。如果您使用新項目作爲示例向您展示如何正確設置舊項目,則必須確保nib的設置正確。我建議使用新項目,將其掛接爲UIViewController而不是UITableViewController,然後將代碼從舊項目移至此新項目。

最後,請確保您始終導入您要推送的.h文件UIViewController。希望有所幫助!

+0

感謝您指導我在正確的方向。我將它設置爲「基於視圖的應用程序」的錯誤。非常感謝! – arooo

0

要加載另一種觀點認爲,嘗試

AppDelegate *delegate = [[UIApplication sharedApplication] delegate]; 
TimeResults *timeResults = [[TimeResults alloc] initWithNibName:@"TimeResults" bundle:nil]; 
[delegate.window setRootViewController:timeResults]; 

希望工程。 :)

+0

這確實可以幫助我加載新的視圖,但我認爲我已經把錯誤的整個事情放在首位。謝謝你,雖然! – arooo

相關問題