1

我正在开发一个蓝牙应用程序。1)我想在启动应用程序时隐藏一个表格视图..在我按下一个操作按钮后我想启用一个表格视图..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];
}

表视图

-(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;
}

表视图委托

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell=[tableView cellForRowAtIndexPath:indexPath];

[self performSegueWithIdentifier:@"TableDetails" sender:tableView];
}
4

3 回答 3

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
 }
于 2012-10-17T09:56:02.803 回答
0

如果它们在同一个视图中,为什么不给 tableView 的 alpha 0 和 userInteractionEnabled = NO ?

虽然,我认为如果不是从界面构建器链接您的 tableView,而是将其保留为成员并在您点击按钮时初始化/重新初始化它,会更容易。

类似于:`- (IBAction)connectButtonTouched:(id)sender {

if (self.deviceTable) { [self.deviceTable removefromSuperview]; self.deviceTable = nil; }

self.deviceTable = [[UITableView alloc] init];

//等等`

您也可以在 peripheralManager 委托中放置另一种方法......类似于 -(void)didFinishScanning 并在内部重绘您的表格视图。

我希望我能很好地理解这个问题,并以任何方式帮助你

于 2012-10-17T09:56:14.233 回答
0

1.如果您想在单击按钮之前隐藏表格视图,您可以使用

tableView.hidden=YES; 和里面

- (IBAction)connectButtonTouched:(id)sender,您可以通过使用使其可见

tableView.hidden=NO;
[tableView reloadData]

或者

2.如果您正在为iPad开发应用程序,那么您可以使用UIPopOverController显示数据。 单击按钮时,您可以加载tableView内部。UIPopOverController

于 2012-10-17T10:00:56.683 回答