我正在开发一个蓝牙应用程序.1)当我启动应用程序时我想要隐藏一个tableview ..在我按下一个动作按钮后我想启用一个tableview ... 2)如果我再按一个动作按钮就意味着tableviewcell清除数据并在搜索前显示为空。给我一个想法..
一些代码 -
- (IBAction)connectButtonTouched:(id)sender
{
[self.deviceTable reloadData];
self.connectButton.enabled = YES;
[self.deviceTable reloadData];
peripheralManager = [[PeripheralManager alloc] init];
peripheralManager.delegate = self;
[peripheralManager scanForPeripheralsAndConnect];
[self.deviceTable reloadData];
[NSTimer scheduledTimerWithTimeInterval:(float)5.0 target:self selector:@selector (connectionTimer:) userInfo:nil repeats:YES];
alert=[[UIAlertView alloc] initWithTitle:@"Bluetooth" message:@"Scanning" delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
UIActivityIndicatorView *progress=[[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(125, 50, 30, 30)];
[alert addSubview:progress];
[progress startAnimating];
[alert show];
}
tableview
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [device count];
}
-(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];
}
cell.textLabel.text=[device objectAtIndex:indexPath.row];
cell.accessoryType=UITableViewCellAccessoryDetailDisclosureButton;
return cell;
}
TableView代表
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell=[tableView cellForRowAtIndexPath:indexPath];
[self performSegueWithIdentifier:@"TableDetails" sender:tableView];
}
答案 0 :(得分:0)
在.h文件中添加 BOOL标志
现在在ViewDidLoad中添加:
flag = FALSE;
tableview委托方法中的
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if(flag)
return [device count];
else
return 0;
}
在按钮操作方法中:
- (IBAction)connectButtonTouched:(id)sender
{
if(!flag)
flag = TRUE;
else
flag = FALSE;
[self.deviceTable reloadData];
//your other code here
}
答案 1 :(得分:0)
如果它们在同一个视图中,为什么不给tableView一个0的alpha和userInteractionEnabled = NO?
尽管如此,我认为如果不是从界面构建器链接你的tableView,而是将其作为成员保存并在点击按钮时初始化/重新初始化它会更容易。
像这样的东西: ` - (IBAction)connectButtonTouched:(id)sender {if(self.deviceTable){ [self.deviceTable removefromSuperview]; self.deviceTable = nil; }
self.deviceTable = [[UITableView alloc] init];
//等等 `
你也可以在peripheralManager委托中添加另一种方法......就像 - (void)didFinishScanning和inside重绘你的表视图。
我希望我能很好地理解这个问题,并以任何方式帮助你
答案 2 :(得分:0)
1.如果要在单击按钮之前隐藏表格视图,可以使用
tableView.hidden=YES;
在里面
- (IBAction)connectButtonTouched:(id)sender
,您可以使用
tableView.hidden=NO;
[tableView reloadData]
OR
2.如果您正在为iPad开发应用程序,则可以使用UIPopOverController
来显示数据。单击按钮时,您可以在tableView
内加载UIPopOverController
。