我是iOS编程的新手,我想做一件简单的事情。我看到了几个关于我的问题的主题,但我不明白为什么我的代码不起作用......
#import "details.h"
在 ViewController.m 中,我修改了 didSelectRowAtIndexPath 方法,如下所示:
details *det = [[details alloc] init];
[self.navigationController pushViewController:det animated:YES];
我获得了这样的反对意见:不兼容的指针类型向'UIViewController *'类型的参数发送'details * __ strong'
对不起,如果我的英语很尴尬,我就是法国人......谢谢你的帮助!
答案 0 :(得分:0)
检查您是否在文件所有者中正确使用了类的详细信息。
参考此图片:
并确保你的Details视图控制器是UIViewController的子类,如果没有,创建一个视图控制器作为UIViewController子类(创建视图控制器本身你可以选择。参见下图)
答案 1 :(得分: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
}
}
答案 2 :(得分:0)
编译器告诉你:“我期待这个UIViewController
方法中有一些presentViewController:animated:
子类,而且它不是”
detail
应该是detailViewController
,继承UIViewController
。
修改强>
转到detail
类头文件(detail.h),确保它继承自 UIViewController :
@interface detail : UIViewController
//properties & methods declarations...
@end