2013-09-23 3 views
0

Я новичок в программировании на iOS, и я хочу сделать простую вещь. Я видел несколько тем о моей проблеме, но я не понимаю, почему мой код не работает ...Как связать каждый UITableViewCell с другим видом

  • Я создал пустой вид под названием details.xib
  • Я создал Objective-C класс, поэтому у меня есть два пустых файла details.h и details.m
  • В моем главном экране называется ViewController.xib, у меня есть Tableview
  • В ViewController.m, я добавил на вершине: #import "details.h"
  • В ViewController.m, я изменил didSelectRowAtIndexPath метод, как это:

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

я получить этот avertissement: Incomptatible типов указателей отправки 'детали * __ strong' к параметру типа 'UIViewController *'

Извините, если мой английский неловко, я французский ... Спасибо за вашу помощь!

+1

детали является UIView или UIViewController? – Larme

+0

det использовать как собственность. – karthika

ответ

0

Убедитесь, что вы укоренены в файле details.xib с соответствующим классом владельца файла.

см это изображение:

enter image description here

И убедитесь, что вы Подробный вид контроллера является суб класс UIViewController, если нет, то создать контроллер представления как UIViewController к югу класса (При создании самого контроллера вида и будет можно выбрать. см ниже изображения)

enter image description here

+0

Я делаю это, но проблема все та же ... –

+0

Вы уверены, что подробный просмотр является подклассом UIViewcontroller? – Ganapathy

+0

Ваши данные.h @interface: UIViewController точно напоминает эту строку? – Ganapathy

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 
    } 
} 
+0

Я не могу этого сделать, потому что мой TableView динамически заполнен. –

+0

проверить мой обновленный ответ. Надеюсь, вы поняли, что вы должны делать –

+0

Я вижу, но моя проблема - это строки, в которые вы помещаете комментарии ... –

0

Компилятор т Эллинг вы: «Я ожидаю, что некоторые UIViewController подкласс в этом presentViewController:animated: метод, и это НЕ»

detail действительно должен быть detailViewController, подклассов UIViewController.

EDIT

Перейти к вашим detail файлы заголовков класса (detail.h), убедитесь, что он наследует от UIViewController:

@interface detail : UIViewController 

//properties & methods declarations... 

@end 
+0

Я понимаю, что вы говорите, но как я могу это сделать? Извините, я все еще не уверен в iOS ... –

+0

Тогда, возможно, вам стоит потратить еще немного времени на выполнение учебных уроков, прежде чем бросаться в stackoverflow ... Я отредактировал свой ответ, чтобы сделать его более явным :) – Vinzzz

+0

Так что вы не должны есть предупреждение ** Несовместимые типы указателей, отправляющих «детали * __ strong» в параметр типа «UIViewController *» **, не так ли? – Vinzzz

Смежные вопросы