2016-08-09 9 views

Antwort

1

Ich weiß nicht, ob ich dich klar verstehe. Sie möchten die DataSource der TableView auf eine andere Klasse als ViewController setzen, oder?

Sie können dies tun. Stellen Sie zunächst sicher, dass Ihre Klasse dem Protokoll UITableViewDataSource entspricht. Someting wie folgt aus:

// In Swift 
class MyView: UIView, UITableViewDataSource { 
} 


// In Objective C, in myview.h 
@interface MyView: UIView <UITableViewDataSource> 

Dann irgendwann, wo Sie Ihre View-Controller explizit Ihre Tableview-Datenquelle zu einer Instanz von MyView gesetzt initialisieren. Etwas wie

// In Swift 
let myView = MyView() 
override func viewDidLoad() { 
    tableView.dataSource = myView 
} 

// In Objective C 
@interface ViewController() 
@property (strong, nonatomic) MyView *myView; 
@end 


@implementation ViewController 
- (void)viewDidLoad() { 
    myView = [[MyView alloc] init]; 
    tableView.dataSource = myView; 
} 
@end 
+0

Die DataSource der meisten TableViews sollte ein Model haben. Soll ich "MyView" ein Model zuweisen? – GodCard

+0

@GodCard, ja du solltest. Ich habe MyView in meinem Codebeispiel leer gelassen, aber Sie sollten seine Eigenschaften und Ausgänge hinzufügen und die Protokollmethoden DataSource und Delegate implementieren. –

Verwandte Themen