2013-02-04 36 views
0

我想刷新我的TableView通過單擊按鈕, 我讀了很多的東西,但我發現只是 ,我要 寫[tableView reloadData]的問題是,在我自己的功能我沒有的tableView我聯繫我 ÌBoutlet UITableView *myTable用表,寫功能[myTable reloadData] 但沒有發生。重裝泰伯維按鈕上方

的剖面圖

我可以添加和刪除項目。 如果我改變到視圖與表,不更新他們(也許輪詢更新效果會更好,但它是相同的),你有一個 現在我想刷新我的tableview以顯示新的細胞

做好主意給我? 感謝

編輯:

我在.H

IBOutlet UITableView *myTable;

@property UITableView *myTable;

在.M

@synthesize myTable

寫下 如果我按下按鈕
- (IBAction)test:(id)sender 
{ 
    [self.myTableView reloadData]; 
} 

,但沒有發生。 我設置了NSLog,在功能

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
+0

你是否改變了表中某些事情的發生? –

+0

您是否也添加了「@synthesize myTable」? –

+0

是的我刪除或添加我的數組,不,我沒有@synthesize – J0k3R

回答

1

您可能正在使用新版本的Xcode,當您像使用@property一樣將tableView鏈接到.h文件時,您不需要在.m文件中使用@synthesize。

這裏是當你在你定義一個@property發生了什麼。.h文件:

  1. 使用合成這樣的:

    @synthesize myTable的;

所以使用reloadData這樣的:

[myTable reloadData]; 
  • 使用合成這樣

    @synthesize myTable的= _myTable;

  • 所以使用reloadData喜歡其中的一個:

    either [_myTable reloadData]; or [self.myTable reloadData]; 
    
  • 或者你沒有使用任何@synthesize:
  • 而在你的case(新版本的Xcode沒有任何@synthesize)你只需要編寫其中的一個如果你沒有使用@synthesize

    [_myTable reloadData];

    [self.myTable reloadData]; 
    

    希望這是有幫助的。我沒有解釋如何創建IBAction或使用委託,因爲我看到你正在做的是正確的。

    好運

    UPDATE1:

    http://useyourloaf.com/blog/2012/08/01/property-synthesis-with-xcode-4-dot-4.html

    XCode 4.4 Auto @Synthesize failing on an XCode 4.3 Project

    UPDATE2:在Xcode 4.4和以後的一些資源進行自動@synthesize的功能,我只是看到你說這將是更好通過拉來刷新系統來做到這一點。最好提供一些關於你正在構建的應用程序的細節,比如iOS版本。如果是6.0或更高版本可以使用原生拉刷新方法是這樣的:

    http://www.lextech.com/2012/10/ios-6-pull-to-refresh-tutorial/

    ,或者如果它不是的iOS 6.0,你可以隨時使用EGOTableViewPullRefresh我用它,它與iOS,甚至偉大工程6.0及更高版本。

    https://github.com/enormego/EGOTableViewPullRefresh

    +0

    我忘記了myTable和筆尖... – J0k3R

    +1

    沒關係。如果您喜歡,可以使用pull來刷新一些有用的信息,因爲幾乎每個應用都使用pull來刷新方法,因此按鈕可能不是最好的方法。祝你好運 :) – Maziyar

    2

    先放UITableViewxib檢查功能,並正確連接到插座,並創建.h文件中@property@synthesize到.m文件 然後使用下面的代碼(self.tableView )。

    -(IBAction)btnPressed:(UIButton *) Sender 
    { 
        [self.tableView reloadData]; 
    } 
    

    可能對你有幫助:)

    謝謝:)

    +0

    我忘記了myTable和筆尖之間的連接... – J0k3R

    1

    首先,你檢查鏈接到變量仍然存在。如果鏈接是OK,然後就叫

    [self.tableview reladData]; 
    

    如果該鏈接被打破,那麼首先將變量從廈門國際銀行鏈接到UITableView,然後嘗試撥打上述相同。

    希望這會幫助你。

    +0

    我忘記了myTable和筆尖之間的連接... – J0k3R