是否可以从同一视图切换视图到tableview?

时间:2013-08-13 07:58:46

标签: ios objective-c uitableview tableview

我有一个viewcontroller.xib,它包含View,buttons,toolbarbutton,textbox和tableview。当我加载初始屏幕时没有表格视图,这很好。现在,当我点击工具栏按钮说,viewtable时,我希望视图移动到tableview。我已经用一些默认对象填充了我的tableview数据:

- (void)viewDidLoad
{
       tableData = [[NSArray alloc] initWithObjects:@"object1",@"object2",@"object3",@"object4", nil];

    [super viewDidLoad];

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [tableData count];
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = nil;

    cell = [tableView dequeueReusableCellWithIdentifier:@"My Cell"];

    if(cell==nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"My Cell"];
    }
    cell.textLabel.text=[tableData objectAtIndex:indexPath.row];
    return cell;
}

因此,当我点击工具栏视图按钮时,它应该显示带有工具栏按钮的tableview,它也有一个后退按钮,所以当我点击它时,它应该隐藏表视图并显示初始视图。是否可以在单个xib中完成所有这些操作?如果我创建另一个xib并简单地将控制转移到该xib,我可以实现结果但我想知道它是否可以在不创建第二个xib文件的情况下执行此操作。而且对于导航我可以使用导航控制器,但我想检查并查看是否可以使用工具栏来传输控件。感谢。

5 个答案:

答案 0 :(得分:0)

如果您不需要动画,则可以执行以下操作

  1. 在您的界面中获取tableView的句柄,如下所示:

    @property(nonatomic,assign)IBOutlet UITableView * tableView;

  2. 最初隐藏您的表格视图(例如在viewDidLoad方法中)

    - (无效)viewDidLoad中 {  [super viewDidLoad];  self.tableView.hidden = YES; }

  3. 然后在工具栏按钮调用的方法中执行以下操作

    - (无效)on_click_toolbar_button {    self.tableView.hidden =!self.tableView.hidden;    //这将继续将表格视图从隐藏切换为显示&反之亦然。 }

答案 1 :(得分:0)

您可以使用隐藏属性来实现这一目标。把它们放在适当的ibaction方法中。

_tableView.hidden = Yes;

_tableView.hidden = No;

答案 2 :(得分:0)

我强烈建议在两个单独的XIB中执行此操作。第一个应包含UIViewController(您的初始视图),第二个应包含UITableViewController(您的表视图)类。两者都应由UINavigationController处理 - 如果没有必要,请不要与API对抗并尝试自己的黑客攻击。上面提到的控制器类为您提供了开箱即用的所有功能。

答案 3 :(得分:0)

嗯这不推荐,但你可以通过删除和添加tableview来实现这个目的..

答案 4 :(得分:0)

首先检查你的表视图是否在你的视图中,如果没有把它放在里面并将数据源的委托设置为文件所有者,那么在你的视图表方法中写下这段代码

-(void)viewTable
{
self.tableView.hidden = NO;
self.viewToolbar.hidden=YES;
}

在工具栏中的后退按钮代码中写

-(void)goback
{   
self.tableView.hidden = YES;
self.viewToolbar.hidden=NO;
}