2013-02-19 49 views
0

我已经做到了这一点,但我不知道我错过了什么。将UIView转换为UITableView

我作为一个单独的View项目启动了项目。

然后转换的视图控制器从继承的UITableViewController像这样:

@interface ViewController : UITableViewController 

走进的.xib此视图控制器和改变了类的自定义类截面形式的UIView到的UITableView:

enter image description here

看看我的其他项目,其中ViewControllers只是直视TableView控制器,我没有看到还有什么需要做,但是当我运行应用程序或当我查看xib它不显示tableview。

+0

你在哪里测试您的应用程序? – achi 2013-02-19 01:42:21

+0

你可能想要做的是:创建一个继承自UITableViewController的自定义类,并在自定义类部分使用这个类(例如MyTableViewController) – Thorsten 2013-02-19 01:43:10

+0

是的,基本上我必须创建一个新类,并按照你的说法做,从UITableViewController继承,并且连线已经完成,包括在.xib中(只要在向导中检查创建.xib) – 2013-02-24 03:45:00

回答

4

你需要拖出一个UITableView在Interface Builder更换的UIView。然后将UITableViewDataSource和UITableViewDelegate协议添加到您的视图控制器头文件中,并将数据源和代理插座从您的UITableView连接到Interface Builder中的视图控制器。

@interface ViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate> 
+0

谢谢,虽然我知道我能够在过去没有设置委托或数据源(除非最终需要它)。 – 2013-02-19 22:44:21

0

add delegate & dataSource。我认为你忘记添加代表& dataSource多数民众赞成这就是为什么它不显示表。将以下几行添加到您的viewDidLoad()中。

self.myTableView.dataSource = self; 
    self.myTableView.delegate = self; 

在此之后还实现委托所需的方法,是

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
return 1; 
} 


- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
return 
10; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
//your code for cell data 
} 
0

你在.m文件中使用了什么init方法。您需要使用

[[UITableViewController alloc] initWithStyle:UITableViewStylePlain] 

分配方法,并确保你已经包括了<UITableViewDataSource, UITableViewDelegate>和相关的数据源和委托方法。

0

好吧,

基本上,如果你想只是从头开始一个UITableViewController,而不必手动做上述情况,只需要创建一个新的OBJ-C类,都从UITableViewController中继承,并选择创建厦门国际银行,它会给您已连接到同一个UITableView工作一个视图控制器和视图:

enter image description here

enter image description here