0

我有一个包含视图、按钮、工具栏按钮、文本框和表格视图的 viewcontroller.xib。当我加载初始屏幕时,没有表格视图,这很好。现在,当我单击工具栏按钮时说,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;
}

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

4

5 回答 5

0

首先检查您的表视图是否在您的视图中,如果没有将其放入并将数据源的委托设置为文件所有者,然后在您的视图表方法中编写此代码

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

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

-(void)goback
{   
self.tableView.hidden = YES;
self.viewToolbar.hidden=NO;
}
于 2013-08-13T11:41:29.473 回答
0

好吧,不建议这样做,但您可以通过删除和添加 tableview 来做到这一点。

于 2013-08-13T08:38:16.187 回答
0

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

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

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

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

    -(void)viewDidLoad { [超级 viewDidLoad]; self.tableView.hidden = 是;}

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

    -(void)on_click_toolbar_button { self.tableView.hidden = !self.tableView.hidden; //这将保持表格视图从隐藏切换到显示,反之亦然。}

于 2013-08-13T08:05:51.757 回答
0

您可以使用 hidden 属性来实现这一点。将这些放在适当的操作方法中。

_tableView.hidden = Yes;

_tableView.hidden = No;
于 2013-08-13T08:06:51.500 回答
0

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

于 2013-08-13T08:09:43.650 回答