Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone iOS 7将UIView更改为UITableView_Iphone_Objective C_Uiview_Ios7_Uitableview - Fatal编程技术网

Iphone iOS 7将UIView更改为UITableView

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

我使用的是Xcode版本5.0(5A1413),目标是iPhone的iOS7。我只有一个UIViewController,上面有一个表视图。我发现的一切都表明只需设置表的数据源并将其委托给ViewController。无论我做什么,应用程序都会立即崩溃。即使根本没有手动编写代码,视图也不会加载。是否不再可以将表格放在非TableViewController上?

委托
数据源
添加到界面:

@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或故事板来实现这一点?