我有一个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文件的情况下执行此操作。而且对于导航我可以使用导航控制器,但我想检查并查看是否可以使用工具栏来传输控件。感谢。
答案 0 :(得分:0)
如果您不需要动画,则可以执行以下操作
在您的界面中获取tableView的句柄,如下所示:
@property(nonatomic,assign)IBOutlet UITableView * tableView;
最初隐藏您的表格视图(例如在viewDidLoad方法中)
- (无效)viewDidLoad中 { [super viewDidLoad]; self.tableView.hidden = YES; }
然后在工具栏按钮调用的方法中执行以下操作
- (无效)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;
}