2013-04-07 3 views
2

У меня есть UIButton, который размещается поверх каждого UITableviewCell. Это обычное табличное представление. Когда я нажимаю на tableviewcell, он переходит в другую таблицу, где (Tableview) содержит данные в каждой ячейке.UIButton размещен на столе tableviewcell

Это путь я получить подробную информацию о 2-е Tableview .... customCellData метод дб запрос, который выдает номер ячейки .. (Ex, если я нажимаю 2-ю ячейку из первого TableView customcell возвращается значение) (bookArray - содержит список элементов, присутствующих во 2-й ячейке первого tableviewcell)

Следующий код didSelectForRowAtIndexPath

NSDictionary *selectedAuthor = nil; 

    NSArray *sectionArray=[mainIndexDictionary objectForKey:[allKeysArray objectAtIndex:indexPath.section]]; 
     selectedAuthor = [sectionArray objectAtIndex:indexPath.row]; 
     iPath=[[selectedAuthor objectForKey:@"SymptIndexID"] intValue]; 
     NSLog(@"iPath - %d",iPath); 

     authortitleString=[[selectedAuthor objectForKey:@"authorIndexName"]stringByAppendingString:@" cure!"]; 
    } 


    bookArray=[objDB customCellData:(NSInteger)iPath]; 
    [self.view bringSubviewToFront:authorView]; 
    [bookTableView scrollRectToVisible:CGRectMake(0.0, 0.0, 320.0,10.0) animated:NO]; 

    [bookTableView reloadData] 

Теперь я хочу запрограммировать таким образом, где. Когда я нажимаю на UIButton, который есть в первом представлении таблицы, он должен содержать данные второго представления таблицы. Я не могу indexPath доступа, так как я буду делать это в отдельном методе (В didselectrowatindexpath если я дать indexpath для этой конкретной ячейки indexpath найден)

ли кто-нибудь, пожалуйста, помогите мне.

Обновленный код

in cellForRowAtIndexPath 
    cell.shareFacebookButton.tag = indexPath.row; 
      [cell.shareFacebookButton addTarget:self action:@selector(facebookShare:) forControlEvents:UIControlEventTouchUpInside]; 

      return cell; 


    -(IBAction)facebookShare:(id)sender 
    { 
     UIButton *button = (UIButton *)sender; 
     UITableViewCell *cell = (UITableViewCell *)button.superview.superview; 
     UITableView *tableView = (UITableView *)cell.superview; 
     NSIndexPath *indexPath = [tableView indexPathForCell:cell]; 

     NSInteger indexPathNumber = indexPath.row; 

     NSLog(@"IndexPath is -- > %d" , indexPathNumber); 

    } 

ответ

2

Ответ Обновлено

Ok, Ниже функция вам нужно использовать для пользовательских кнопок клеток

"cellForRowAtIndexPath" или использовать любой другой с учетом соответствующей функции.

И определить, какая кнопка была нажата, сделайте как показано ниже

<buttonid>.tag = <indexPath>.row; 

С уважением, Ravi

+0

Ravi .. в этом методе .как выяснить, какая кнопка нажата. как я могу получить доступ к cell.shareButton (кнопка поверх tableviewcell) .. так как b utton создается в пользовательской ячейке. в файле customcell.m я добавил кнопку поверх tableviewcell. Я новичок в этом .can u помогите мне. Спасибо – raptor

+0

Я попытался реализовать ур. Когда я делаю, что iPath возвращает номер indexPath. когда я запускаю проект, и если я нажму, скажу 3-й IndexPath ipath = 3 .., когда я нажму кнопку на том же indexPath (indexPathNumber = 2). Проверьте мой обновленный код – raptor

+0

Чувак, indexPath начинается с 0, а не 1. Вам просто нужно сделайте +1 в своем коде. Это решило вашу главную проблему, поэтому, пожалуйста, примите ответ. С Уважением, –

Смежные вопросы