2010-09-24 35 views
1

我正在開發一個iPhone應用程序。我正在使用UITable子類UITableViewController。我在視圖中添加了一個NavigationBar:UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 320.0f, 48.0f)];[self.tableView addSubview:navBar];,現在的問題是導航欄向下滾動,並且這是我想要避免的。有可能使用UITableViewController來避免它?NavigationBar不必滾動UITable

+0

你可以提供一些更多的細節..什麼是xib的結構?或者什麼是superview文件的viewcontroller類型? – kthorat 2010-09-24 15:55:09

+0

我沒有做任何與xib文件,它只是一個子類的UITableViewController,並在viewDidLoad我添加一個導航欄,但它滾動表 – PiccoloBuddha 2010-09-24 16:04:29

回答

3

你說

我使用的是UITable子類的UITableViewController

我猜你使用的是子類的UITableViewController其中,自然也擁有一個UITableView。 您的問題是由於您將NavigationBar插入到UITableView中,或者更確切地說,插入到屬於TableView的UIScrollView中。 根據您的需求,您有兩種選擇:

  1. 如果您希望您的應用的行爲像例如Mail(所以你的TableView將只是一個視圖結構中的一個元素,通過它你可以挖掘),你應該使用UINavigationcontroller並且讓你的TableViewController成爲NavigationController的第一個視圖,就像在Xcode中打開「基於導航」的模板一樣。 UINavigationcontroller將已經包含一個UINavigationBar,所以你不必擔心。
  2. 如果由於某種原因,這不是你想要的,你將不得不創建一個UIView來保存你的UINavigationBar和UITableView。由於使用UITableViewController完成這樣的設置已知很困難,因此您可能需要拋棄TableViewController並將其替換爲一個簡單的ViewController,該ViewController實現了「UITableViewDelegate」 - 和「UITableViewDataSource」--Delegate。有關更多幫助,請參閱this post
+0

謝謝,我選擇第二個選項,我讀你發佈的鏈接,但現在我有一個新的問題,因爲我總是用UITableViewController使用UItable:我在xib文件上添加了一個UITable,我在.h文件上用IBOutlet連接了它,我在.h文件中添加了UIViewController ,最後實現了所有與UITableView控制器一樣,管理表的方法(numberOfRowsInSection:或 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath),但數據不加載! – PiccoloBuddha 2010-09-25 08:36:02

+0

剛剛解決!我只應將代表和數據源鏈接到文件的所有者!謝謝你的幫助!! – PiccoloBuddha 2010-09-25 08:55:19

+0

不客氣。請將我的答案標記爲已接受。 – Phlibbo 2010-09-25 09:35:26