Передача и доступ к данным объекта вне табличного представления - PullRequest
0 голосов
/ 25 июня 2018

Я хочу получить доступ к данным объекта, которые я использовал в своем методе tableview в событии действия моей кнопки. Это показывает ошибку - «Использование необъявленного идентификатора», Вот мой фрагмент кода -

Метод TableView-

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    static NSString *CellIdentifier = @"BlogTableViewCell";

    BlogTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     long index1 = 2 * (indexPath.row);
    long index2 = index1 + 1;
    if (index1 < [self.BlogsArray count]) {
        cell.vw_blog1.tag = index1;
    BlogModel *blog = [self.BlogsArray objectAtIndex:index1];
        cell.lbl_blogTitle1.text = blog.blogTitle;
        cell.lbl_blogDescripton1.text = blog.blogDesc;
}

Моя кнопка Метод действия -

- (IBAction)btnAction_AuthorName1:(id)sender {

      NSLog(@"Author1 of blog1 is clicked");
      UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Consult" bundle:nil];
      DRDetailsViewController *DRDetailVC = (DRDetailsViewController *)[storyboard instantiateViewControllerWithIdentifier:@"DRDetailsViewController"];
      DRDetailVC.DoctorID = [NSString stringWithFormat:@"%@",blog.userId];
      [APP_DELEGATE.navigationController pushViewController:DRDetailVC animated:YES];

}

В blog.UserId отображается ошибка.

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Добавьте тег в метод cellForRowAtIndexPath для вашей кнопки.

cell.btn.tag = indexPath.row;

, а затем получите значение тега для выбранного индекса

- (IBAction)btnAction_AuthorName1:(UIButton *)sender {

  BlogModel *blog = [self.BlogsArray objectAtIndex:sender.tag];

  NSLog(@"Author1 of blog1 is clicked");
  UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Consult" bundle:nil];
  DRDetailsViewController *DRDetailVC = (DRDetailsViewController *)[storyboard instantiateViewControllerWithIdentifier:@"DRDetailsViewController"];
  DRDetailVC.DoctorID = [NSString stringWithFormat:@"%@",blog.userId];
  [APP_DELEGATE.navigationController pushViewController:DRDetailVC animated:YES];

}
0 голосов
/ 25 июня 2018

Добавить Tag и создать действие Button в методе cellForRowAtIndexPath.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"BlogTableViewCell";

    BlogTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    cell.btn.tag = indexPath.row;
    [cell.btn addTarget:self action:@selector(btnAction_AuthorName1:) forControlEvents:UIControlEventTouchUpInside];
}

Код действия кнопки «Вы».

- (IBAction)btnAction_AuthorName1:(UIButton *)sender {

    BlogModel *blog = [self.BlogsArray objectAtIndex:sender.tag];

    NSLog(@"Author1 of blog1 is clicked");
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Consult" bundle:nil];
    DRDetailsViewController *DRDetailVC = (DRDetailsViewController *)[storyboard instantiateViewControllerWithIdentifier:@"DRDetailsViewController"];
    DRDetailVC.DoctorID = [NSString stringWithFormat:@"%@",blog.userId];
    [APP_DELEGATE.navigationController pushViewController:DRDetailVC animated:YES];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...