查看不可见

时间:2013-03-20 05:02:09

标签: iphone ios objective-c cocoa-touch uiview

我的应用程序从名为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

2 个答案:

答案 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];