2016-04-27 6 views
0

Я использую библиотеку, которая содержит файл XIb в Objective-CProgramatically создать SEGUE из XIb файла в ViewController в раскадровке

У меня есть раскадровка, который имеет быстрые классы

Мне нужно создать SEGUE из этого XIb файл на мою раскадровку и передать некоторые данные.

Пробовал это не повезло

XIB Файл

#import "IncomingMessageCell.h" 

@implementation IncomingMessageCell 

- (void)awakeFromNib { 

    UIImage * balloonImage = [UIImage imageNamed:@"bubble-left"]; 
    balloonImage = [balloonImage resizableImageWithCapInsets:(UIEdgeInsets){36, 32, 18, 12}]; 
    self.bubbleView.image = balloonImage; 

    self.avatarView.layer.cornerRadius = 25; 
    self.avatarView.clipsToBounds = YES; 

    self.avatarView.userInteractionEnabled = YES; 

    UITapGestureRecognizer *tapGesture1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGesture:)]; 

    tapGesture1.numberOfTapsRequired = 1; 

    [tapGesture1 setDelegate:self]; 

    [self.avatarView addGestureRecognizer:tapGesture1]; 
    } 

- (void) tapGesture: (id)sender 
{ 
    UIViewController *vc = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"yourVcIdentifier"]; 
[self.navigationController pushViewController:vc animated:YES]; 
} 


- (void)setSelected:(BOOL)selected animated:(BOOL)animated { 
    [super setSelected:selected animated:animated]; 

    // Configure the view for the selected state 
} 

@end 

Как это возможно?

+0

Где вы это пробовали? и каков ваш текущий VC? –

+0

Я обновил свой вопрос –

+0

, так что происходит, когда вы нажимаете? –

ответ

0

Сделайте это в ViewController, который хранит таблицу с этой ячейкой.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    IncomingMessageCell *cell = ...; 
    cell.avatarView.userInteractionEnabled = YES; 

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)]; 
    tapGesture.numberOfTapsRequired = 1; 
    [cell.avatarView addGestureRecognizer:tapGesture]; 
    cell.avatarView.tag = 500 + indexPath.row; // To detect cell that image belongs to, because you use dequeue cell 
    return cell; 
} 

- (IBAction)handleTapGesture:(UITapGestureRecognizer *)tapGesture{ 
    //Do you action 
    NSLog(@"Row tap : %ld",tapGesture.view.tag - 500); 
    UIViewController *vc = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"yourVcIdentifier"]; 
    [self.navigationController pushViewController:vc animated:YES]; 
} 
+0

Я могу обработать клик уже, но я не знаю, как переходить к основной раскадровке. –

+0

Да, но для обработки segue вы должны поместить свой код в ViewController не в Cell. Попробуйте мой путь, вы можете поместить свой код, нажать на другой вид: '- (IBAction) handleCellBtnClicked: (UIButton *) отправителя { // Есть ли у вас действие UIViewController * В.- = [[UIStoryboard storyboardWithName: @" MainStoryboard "bundle: nil] instantiateViewControllerWithIdentifier: @" yourVcIdentifier "]; [self.navigationController pushViewController: vc animated: YES]; } ' –

+0

Невозможно использовать tabgesture из cellForRowAtIndexPath? –

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