0

我是 iOS 编程的新手,我想做一件简单的事情。我看到了几个关于我的问题的主题,但我不明白为什么我的代码不起作用......

  • 我创建了一个名为details.xib的空视图
  • 我创建了一个 Objective-C 类,所以我有两个空文件details.hdetails.m
  • 在我的名为ViewController.xib的主视图中,我有一个 tableView
  • ViewController.m中,我在顶部添加了:#import "details.h"
  • ViewController.m中,我修改了didSelectRowAtIndexPath方法,如下所示:

    details *det = [[details alloc] init];
    [self.navigationController pushViewController:det animated:YES];
    

我得到了这个警告:不兼容的指针类型将“详细信息 *__strong”发送到“UIViewController *”类型的参数

对不起,如果我的英语很尴尬,我是法国人......谢谢你的帮助!

4

3 回答 3

0

检查您是否在文件所有者中正确植根于 details.xib 中。

参考这张图片:

在此处输入图像描述

并确保您的详细视图控制器是 UIViewController 的子类,如果不是,请创建一个视图控制器作为 UIViewController 子类(在创建视图控制器本身时,您可以选择。参考下图)

在此处输入图像描述

于 2013-09-23T12:27:33.863 回答
0
 NSMutableArray *MenuArray=[[NSMutableArray alloc] init];

 //Populate your array dynamically. Here I have populate my array with a custom object
 [MenuArray addObject:[[GlobalMethod alloc] initWithMenuName:@"Home" WithNibNumber:1]];
 [MenuArray addObject:[[GlobalMethod alloc] initWithMenuName:@"Profile" WithNibNumber:2]];
 [MenuArray addObject:[[GlobalMethod alloc] initWithMenuName:@"Friends" WithNibNumber:3]];
 [MenuArray addObject:[[GlobalMethod alloc] initWithMenuName:@"Photos" WithNibNumber:4]];

 // And so on.....


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [MenuArray count];
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   GlobalMethod *Method=[MenuArray objectAtIndex:[indexPath row]];
   UITableViewCell *cell;
   [cell setTag:[Method NibNumber]];
   return cell;
}


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
   UITableViewCell *cell=[tableView cellForRowAtIndexPath:indexPath];
   if([cell tag]==1)
   {
      //push to viewController1
   }
   else if([cell tag]==2)
   {
      //push to  viewController12
   }
   else
   {
      //and go on
   }
}
于 2013-09-23T12:31:52.953 回答
0

编译器告诉你:“我期待UIViewController这个presentViewController:animated:方法中有一些子类,但它不是”

detail确实应该是一个detailViewController,子类化UIViewController

编辑

转到您的detail类头文件(detail.h),确保它继承自UIViewController

@interface detail : UIViewController

//properties & methods declarations...

@end
于 2013-09-23T12:36:16.810 回答