Iphone iOS 7将UIView更改为UITableView
我使用的是Xcode版本5.0(5A1413),目标是iPhone的iOS7。我只有一个UIViewController,上面有一个表视图。我发现的一切都表明只需设置表的数据源并将其委托给ViewController。无论我做什么,应用程序都会立即崩溃。即使根本没有手动编写代码,视图也不会加载。是否不再可以将表格放在非TableViewController上?将Iphone iOS 7将UIView更改为UITableView,iphone,objective-c,uiview,ios7,uitableview,Iphone,Objective C,Uiview,Ios7,Uitableview,我使用的是Xcode版本5.0(5A1413),目标是iPhone的iOS7。我只有一个UIViewController,上面有一个表视图。我发现的一切都表明只需设置表的数据源并将其委托给ViewController。无论我做什么,应用程序都会立即崩溃。即使根本没有手动编写代码,视图也不会加载。是否不再可以将表格放在非TableViewController上?将委托和数据源添加到界面: @interface MyViewController : UIViewController
委托
和数据源
添加到界面:
@interface MyViewController : UIViewController
<UITableViewDataSource, UITableViewDelegate>
@接口MyViewController:UIViewController
您应该实现UITableViewDataSource中的所有必需的方法,以防止崩溃:
@required
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
我认为你犯了一个初学者常犯的错误。您删除了Interface Builder中的主视图,然后添加了表视图 您必须知道UIViewController类有一个名为view的UIView属性。默认情况下,此属性设置为使用nib(或故事板)文件创建的视图 要说表视图是主viewcontroller的视图,您必须右键单击文件所有者到表视图,然后选择“视图” 如果您对该方法不满意,另一种方法是在第一个视图中设置tableview。以下是答案-
确实,您需要实现所需的方法。iOS 7.0没有此类限制。您仍然可以将UIViewController用作UITableView的数据源和委托。您只需要实现这些协议设置的所有强制方法。你能用你的代码和导致崩溃的异常更新你的问题吗。如果没有这些信息,就很难提供解决方案
我特别感兴趣的是查看您的cellForRowAtIndexPath,了解您构建和重用单元格的方式。缺少Outlet不会导致崩溃。我确信这是头文件中缺少的加载项。当然,您是对的,缺少插座不会使您的应用程序崩溃。您的viewcontroller.m中是否具有委托、数据源的所有必需方法?您能否提供在控制台中引发的异常?您是否使用XIB或故事板来实现这一点?