如何重新加载 UiViewController 内的 UItableView

发布于 2024-12-04 21:40:33 字数 1401 浏览 1 评论 0原文

我在 UiViewController 中有一个 UITableView 。 在同一屏幕中,我还有两个按钮:“显示全部”与“显示前 5 项”。

现在,基于选择全部/前 5 项,我必须更新表数据。

我无法使用 [tableView reloadData],因为我没有使用 UITableViewController。

这是我第一次开发 iPhone 应用程序。因此,我们将不胜感激任何帮助。

(我使用本教程开始 http:// www.icodeblog.com/2009/05/24/custom-uitableviewcell-using-interface-builder/

谢谢。

这是我的代码片段:

.h 文件

@interface DataViewController : UIViewController {
    NSString *showType;   
}

@property (nonatomic, retain) NSString *showType;

-(IBAction) showTop: (id) sender;
-(IBAction) showAll: (id) sender;

@end

.m 文件

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellID = @"customCell";
    DataCustomCell *cell =  (DataCustomCell *) [tableView dequeueReusableCellWithIdentifier:cellID];    

    if([showType isEqualToString:@"all"])
    {
        // use this data..
    }
    else
    {
        // use some other data..
    }    

    // ....
}

-(IBAction) showNearby: (id) sender 
{
    self.showType=@"top";  

    // reload table some way  
}

-(IBAction) showAll: (id) sender
{
    self.showType=@"all";

    //reload table some way
}

I have a UITableView inside UiViewController.
In the same screen, I also have two buttons: Show All vs Show Top 5.

Now based on a selection all/top 5, I have to update table data.

I cant use [tableView reloadData] as I am not using UITableViewController.

This is the first time I am working on an iphone app. So any help is appreciated.

(I used this tutorial to get started http://www.icodeblog.com/2009/05/24/custom-uitableviewcell-using-interface-builder/)

Thanks.

Here is a snippet of my code:

.h file

@interface DataViewController : UIViewController {
    NSString *showType;   
}

@property (nonatomic, retain) NSString *showType;

-(IBAction) showTop: (id) sender;
-(IBAction) showAll: (id) sender;

@end

.m file

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellID = @"customCell";
    DataCustomCell *cell =  (DataCustomCell *) [tableView dequeueReusableCellWithIdentifier:cellID];    

    if([showType isEqualToString:@"all"])
    {
        // use this data..
    }
    else
    {
        // use some other data..
    }    

    // ....
}

-(IBAction) showNearby: (id) sender 
{
    self.showType=@"top";  

    // reload table some way  
}

-(IBAction) showAll: (id) sender
{
    self.showType=@"all";

    //reload table some way
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡紫姑娘! 2024-12-11 21:40:33

创建一个像这样的 UITableView IBOutlet

@property (nonatomic, retain) IBOutlet UITableView *myTableView;

在 UIViewController 的界面文件中 。然后将其连接到 Interface Builder 中的 UITableView。在实现文件中综合它之后,您应该能够像这样访问它

[self.myTableView reloadData];

另外,由于您保留了它,您将必须在 dealloc 中释放 myTableView方法。

Create a UITableView IBOutlet like this

@property (nonatomic, retain) IBOutlet UITableView *myTableView;

in your UIViewController's interface file. Then have that connect to the UITableView in Interface Builder. After synthesizing it in your implementation file, you should be able to access it like this

[self.myTableView reloadData];

Also, since you retained it, you will have to release myTableView in the dealloc method.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文