我创建了一个按钮并将其连接到界面构建器中的操作。在从显示视图切换到显示表视图的操作方法中,我需要做什么?
以下是我的一些代码:
// SwitchToTableViewController.h
#import <UIKit/UIKit.h>
@interface SwitchToTableViewController : UIViewController {
}
-(IBAction) switch : (id) sender;
@end
和
//SwitchToTableViewController.m
#import "SwitchToTableViewController.h"
#import "Table.h"
@implementation SwitchToTableViewController
-(IBAction) switch : (id) sender{
// what is i need to write here to switch to tableview
}
@end
和
//table.m
#import <UIKit/UIKit.h>
@interface Table : UITableViewController {
}
@end
和
//table.h
#import "Table.h"
@implementation Table
#pragma mark Table view methods
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 2;
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Set up the cell...
return cell;
}
@end
答案 0 :(得分:0)
你需要:
创建表格的瞬间。
将所有数据传递到此瞬间,很可能是一个数组,以便您可以使用它来显示单元格数据。您需要先在Table类中创建一些iVars。目前你还没有。
选择其中一种方式展示你的桌面即时。
查看Apple的 doc。它有很多示例代码。
编辑示例代码:
在SwitchToTableViewController.h
文件中,添加以下行:
#import "Table.h"
在SwitchToTableViewController.m
中,进行此更改
-(IBAction) switch : (id) sender{
// what is i need to write here to switch to tableview
Table *myTable = [[Table alloc]init];
myTable.cellArray = [NSArray arrayWithObjects:@"Item1", @"Item2", @"Item3", nil]; //only an example to be displayed
[self presentViewController:myTable animated:YES completion:nil]; // present your Table - view controller
}
您的Table.h
文件应如下所示:
#import <UIKit/UIKit.h>
@interface Table : UITableViewController {
}
@property (nonatomic, strong) NSArray *cellArray; // adding this line to get data from the parent
@end
在Table.m
中,进行此更改
@implementation Table
@synthesize cellArray; //add this line right after @implementation Table
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return cellArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// Configure the cell...
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.textLabel.text = [cellArray objectAtIndex:indexPath.row];
}
return cell;
}
答案 1 :(得分:0)
这里有两个视图控制器,而不是两个视图。实现这两个概念之间的区别非常重要。我在下面的答案中大胆地提到了你需要阅读的其他一些关键词。
要显示另一个视图控制器以响应按下按钮之类的操作,您需要创建目标视图控制器的新实例,然后以某种方式在屏幕上显示它。
有很多方法可以做到这一点,但对于初学者来说,最简单的方法是在故事板中完成所有这些操作。将两个视图控制器添加到故事板。
您的初始视图控制器(带按钮)应嵌入 UINavigationController 。 控制 - 拖动从按钮到表视图控制器。这将创建一个 segue 。从选项列表中选择“推送”。
嘿,当您按下按钮时,您的表格视图现在将显示在屏幕上。
答案 2 :(得分:0)
首先创建一个SingleView应用程序(基于UIViewController),将其命名为SwitchingView。
然后在视图上方添加UITableView。使用Interface构建器连接。将tableview的委托和数据源设置为SwitchingView。
还在视图上添加一个按钮(在添加表视图之前)。使用IB(界面构建器)隐藏设置表视图。
按钮操作
tableview.hidden = NO;
这将显示您的表视图!!!如果您想再次显示视图,只需制作
即可 tableview.hidden = YES;
tableView中的:didSelectForIndexPathRow方法。