我的应用程序从名为TaskController : UINavigationController
的根控制器开始
与UINavigationController
的根视图控制器一样,我创建了类TaskRootController : UIViewController<UITableViewDelegate>
(它添加为视图UITableView
);
当我开始应用程序时,我只看到Title形式的TaskRootController和它的背景颜色。
但我没有看到表格视图。
如果我的应用程序以TaskRootController
作为rootViewController
开头,我会看到表格视图。
我怎样才能看到表格视图?
修改
@implementation TaskRootController
@synthesize taskRootView; //table view
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
NSLog(@"SIZE x:%f,y:%f ; %f:%f", self.view.bounds.origin.x, self.view.bounds.origin.y, self.view.bounds.size.width, self.view.bounds.size.height);
self.view.backgroundColor = [UIColor grayColor];
self.title = @"Root";
self.taskRootView = [[UITableView alloc] initWithFrame: self.view.bounds style:UITableViewStylePlain];
[self.view addSubview:self.taskRootView];
self.taskRootView.delegate = self;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGFloat result = 20.0f;
if([tableView isEqual:self.taskRootView])
{
result = 40.0f;
}
return result;
}
@end
答案 0 :(得分:0)
添加UITableView
将委托和数据源放在TaskRootController.h
文件中。
@interface TaskRootController : UIViewController <UITableViewDataSource, UITableViewDelegate>
并将此代码放在TaskRootController.m
文件
self.tblView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height) style:UITableViewStyleGrouped];
self.tblView.delegate = self;
self.tblView.dataSource = self;
[self.view addSubview:self.tblView];
并添加UITabelView
的相关委托和数据源方法。
修改强>
检查以下方法..是否正确添加?
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// Return the number of sections.
return 1; // put number for section.
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
return 6; // put number as you want row in section.
}
答案 1 :(得分:0)
@iPatel - 我认为不需要这些方法来显示简单的表格视图(带有灰色虚线的白色背景),因为当我在我的应用程序中将其设置为根控制器时,TaskRootController显示一切正常(不是我的UINavigationController中的根目录)< / p>
@Manohar - 我手臂的范围内没有代码。但正如我记得它看起来像:
self.taskRoot = [[TaskController alloc] initWithNill.....] //initialization of controller
self.window.rootViewController = self.taskRoot;
[self.window makeKeyAndVisible];