Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 无法使用SegmentedControl刷新UITableView数据_Ios_Iphone_Uitableview_Tableview_Uisegmentedcontrol - Fatal编程技术网

Ios 无法使用SegmentedControl刷新UITableView数据

Ios 无法使用SegmentedControl刷新UITableView数据,ios,iphone,uitableview,tableview,uisegmentedcontrol,Ios,Iphone,Uitableview,Tableview,Uisegmentedcontrol,Intent:我有一个简单的UITableView,它是通过编程方式设置的(没有IB),还有一个分段控件,它将替换表的数组并刷新视图 问题:当我按下任一分段控制按钮时,新的数据集输出到日志是正确的,但tableView没有刷新 如果我滚动表格,单元格将被替换为正确的数据,但我希望单元格立即刷新(无需滚动)。当我最初加载表格时,我的NSLog from tableView:numberOfRowsInSection:会被写入,但在按下按钮时,它不会再次出现。我是否未正确设置代理 ViewContr

Intent:我有一个简单的UITableView,它是通过编程方式设置的(没有IB),还有一个分段控件,它将替换表的数组并刷新视图

问题:当我按下任一分段控制按钮时,新的数据集输出到日志是正确的,但tableView没有刷新

如果我滚动表格,单元格将被替换为正确的数据,但我希望单元格立即刷新(无需滚动)。当我最初加载表格时,我的NSLog from tableView:numberOfRowsInSection:会被写入,但在按下按钮时,它不会再次出现。我是否未正确设置代理

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
{
    NSMutableArray *tableObjects;
}

@property (strong, nonatomic) UITableView *tableView;

@end

实例化表视图时,您正在执行以下操作:

UITableView *tableView = [[UITableView alloc] initWithFrame:tableframe style:UITableViewStylePlain];
你应该做:

self.tableView = [[UITableView alloc] initWithFrame:tableframe style:UITableViewStylePlain];

非常感谢你,海利姆。这解决了问题,但让我信心不足!为什么将此表初始化为self.tableView而不是指向UITableView实例的指针是正确的?是因为.h文件中的属性声明吗?只是因为在showList方法中调用[self.tableView reloadData]来重新加载数据。但您尚未将任何内容分配给self.tableView。。除非您将self.tableView=[[UITableView alloc(…)]设置为空,否则该变量将始终为nilHmmm。好的。那么,我将进一步阅读self。我非常感谢您的帮助。
self.tableView = [[UITableView alloc] initWithFrame:tableframe style:UITableViewStylePlain];