2011-09-03 58 views
1

我目前需要的是通過繼承UIViewController並應用必要的方法而不使用任何nib文件來以編程方式創建tableview。它可能需要一個UINavigationViewControlloer。我基本上了解所有這些概念,甚至幾乎知道如何將所有東西拼湊在一起,但缺少一些東西。它將有4個文件。 AppDelegate h/m和SomeNameViewcontroller h/m。我認爲SomeNameViewController應該有一個屬性的UITableView *UIViewController子類以編程方式創建列表而不使用筆尖

我嘗試了多種方法和網上看了,但我不斷收到一個黑色的屏幕與導航欄。這是令人難以置信的令人沮喪,當我可以得到tableView顯示,我不能得到tableView重新加載數據:/

回答

3

從你的敘述,似乎你沒有完全掌握涉及的概念。例如,沒有像UINavigationViewController那樣的東西。以下是您需要知道的內容:

  • A UINavigationController是視圖控制器的控制器。

你可以在你的應用程序代理與

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController: 
    yourRootViewController]; 

,並從self.navigationController視圖控制器的訪問來創建它。

  • 你的目的,你創建一個UITableViewController的子類。 Xcode中的模板應該已經包含您需要的所有datasourcedelegate方法的存根。

  • 在您的應用程序委託中,請確保您已將正確的導航控制器分配爲根。

application:didFinishLaunchingWithOptions:

self.window.rootViewController = nav; // the nav controller you created 
[nav release]; 
[self.window makeKeyAndVisible]; 
return YES; 
+0

還要記住,如果導航控制器是應用程序的根控制器和你不使用廈門國際銀行的話,那麼你可以刪除廈門國際銀行,清除裁判它在App-info.plist中,你需要將其添加到該呼叫中的main.m:INT retVal的= UIApplicationMain(的argc,argv的,零,@ 「YouAppDelegate」); – bryanmac

+0

@mundi。確實。對於我的困惑感到抱歉。雖然我確實說UINavigationViewController,我的意思是UINavigationController。但那在旁邊。你的回答確實有幫助。我還有一個問題。而不是創建的子類時的'UITableViewController'我想創建UIViewController'的'子類,並實現從'<的UITableViewDelegate,UITableviewSource>'方法和有工作作爲我的yourRootViewController。 – bubbles

+0

創建UIViewController'的'子類,並添加委託協議和方法手動也可以。確保您的視圖控制器的'view'設置爲'tableView'或以其他方式始終引用表視圖。另外,不要忘記設置表視圖的'datasource'和'delegate'。 – Mundi

1

聽起來像是你只需要一個UITableVIewController。和Mundi一樣,xcode很好地處理了這個問題。這裏是你必須做的:

  1. 在Xcode中創建一個新的項目,並選擇Window-based Application模板。

    • 這給你的基本東西,主要是一個AppDelegate。

  2. 添加一個新的文件,該文件是一個UIViewController subclass。當給定選項時,將子類更改爲UITableViewController。

    • 之後,您將可以選擇使用nib文件,取消選中。
    • 這會給你一個UITableViewController與已經有線一個UITableView(DelegateDataSource)到控制器。

  3. 創建NavigationControllerAppDelegate並把你的TableViewContoller

    • [self.navigationController pushViewController:yourTableViewController animated:NO];
  4. 設置你的NavigationContollerRootController像曼迪描述。

第6和斯坦福Developing Apps for iOS 7解釋NavigationControllers和其它控制器(例如TabBarController)非常好。

相關問題