2016-07-12 9 views
0

Ich versuche, eine UIBubbleTableView in meinem UITableview zu erstellen. Ich habe ein Beispiel im Internet gesucht und genau dasselbe versucht. Aber das Beispiel verwendet xib, und ich verwende storyboard. Ich habe die angegebene Datei in meinem Projekt importiert. Aber wenn ich versuche, diesen Code auszuführen, wird es abgestürzt saying.-Erstellen einer Blase in UITableView für Chat-Anwendung in iOS

- [UITableView setBubbleDataSource:]: Unbekannter Selektor gesendet Instanz

Hier unten ist das, was ich versuchte.

@interface ChatController(){ 

IBOutlet UIView *textView; 
IBOutlet UITextField *textF1; 
NSMutableArray *bubbleData1; 
IBOutlet UIBubbleTableView *bubbleTbl; 
} 

-(void)viewDidLoad { 
[super viewDidLoad]; 

//bubble data 
NSBubbleData *heyBubble1 = [NSBubbleData dataWithText:@"Hey, halloween is soon" date:[NSDate dateWithTimeIntervalSinceNow:-300] type:BubbleTypeSomeoneElse]; 
heyBubble1.avatar = [UIImage imageNamed:@"avatar1.png"]; 

NSBubbleData *photoBubble1 = [NSBubbleData dataWithImage:[UIImage imageNamed:@"halloween.jpg"] date:[NSDate dateWithTimeIntervalSinceNow:-290] type:BubbleTypeSomeoneElse]; 
photoBubble1.avatar = [UIImage imageNamed:@"avatar1.png"]; 

NSBubbleData *replyBubble1 = [NSBubbleData dataWithText:@"Wow.. Really cool picture out there. iPhone 5 has really nice camera, yeah?" date:[NSDate dateWithTimeIntervalSinceNow:-5] type:BubbleTypeMine]; 
replyBubble1.avatar = nil; 

bubbleData1 = [[NSMutableArray alloc] initWithObjects:heyBubble1, photoBubble1, replyBubble1, nil]; 
bubbleTbl.bubbleDataSource = self; 
} 

Die App stürzt in dieser Zeile ab. - bubbleTbl.bubbleDataSource = self;

Ich habe versucht, die 'bubbleTbl' Steckdose zu meinem tableview, Aber konnte nicht verbinden es daher ich weiß nicht, wie 'bubbleDataSource' zu meinem Tableview.

Kann mir bitte jemand helfen. Jede Hilfe ist willkommen

Bearbeiten-

ich diese Methode implementiert haben und einen Haltepunkt an diesem Verfahren festgelegt. Aber diese Methode wird niemals ausgeführt.

- (NSInteger)rowsForBubbleTable:(UIBubbleTableView *)tableView 
{ 

NSLog(@"bubble count %lu",(unsigned long)[bubbleData1 count]); 
return [bubbleData1 count]; 
} 

EDIT 2-

Code Video in blasen-

UIEdgeInsets insetss = { .left = 180, .right = 10, .top =10, .bottom = 200 }; 
NSBubbleData *videodata=[NSBubbleData dataWithView:_playerViewController.view date:[NSDate dateWithTimeIntervalSinceNow:0] type:BubbleTypeMine insets:(insetss)]; 
[bubbleData1 addObject:videodata]; 

EDIT 3--

NSString *stringVideoName = @"videobuild.mov"; 
NSString *stringVideoPath = [[NSBundle mainBundle] pathForResource:stringVideoName ofType:nil]; 
NSAssert(stringVideoPath, @"Expected not nil video file"); 

NSURL *urlVideoFile = [NSURL fileURLWithPath:stringVideoPath]; 
NSAssert(urlVideoFile, @"Expected not nil video url"); 

_playerViewController = [[AVPlayerViewController alloc] init]; 
_playerViewController.player = [AVPlayer playerWithURL:urlVideoFile]; 
_playerViewController.view.frame = CGRectMake(10.0, 0.0, 150.0 , 80.0); // self.view.bounds; 
_playerViewController.showsPlaybackControls = YES; 

Antwort

1

hinzufügen in xib/Storyboard UITableView in der Klasse zu zeigen - UIBubbleTableView

enter image description here

+0

Wie viele Zeilen haben Sie in UITableView? Wenn Zeilen> 0 zählen, dann markieren Sie Zellen in cellForRowAtIndexPath – MirMiratom

+0

Sind Sie sicher, dass Sie eine Referenz auf bubbleTbl haben? Wenn bubbleTbl == nil, ruft rowsForBubbleTable nicht auf. Setzen Sie den Haltepunkt auf bubbleTbl.bubbleDataSource = self und überprüfen Sie. Und diese Referenz muss stark sein – MirMiratom

+0

Ja, ich bin sicher, dass die Referenz nicht Null ist. – ammy1