Как встроить контроллер с initWithmyData и с initWithStyle: UITableViewStyleGrouped? - PullRequest
1 голос
/ 06 сентября 2011

У меня есть один контроллер, наследующий UITableViewController, и вызываю объект, как показано ниже

        editAlarm *ob = [[editAlarm alloc] initWithStyle:UITableViewStyleGrouped];
        UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:ob];
        ob.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
        [self presentModalViewController:nc animated:YES];
        [ob release];
        ob =  nil;
        [nc release];
        nc = nil;

теперь таблица будет инициализирована с помощью groupstyle, но я хочу, чтобы у объекта были данные, как обычно, во многих моих проектах

-(id)initwithData:(myFaceData *)dat{
id i=[super init];
self.data=dat; where data is object having some variables in it
return i;
 }


    myFaceData *data=[myArray objectAtIndex:tag];
    editAlarm *ob = [[editAlarm alloc] initwithData:data];
[self.navigationController pushViewController:details animated:NO];

Теперь, как я могу сделать два init одновременно, каково решение, чтобы мой объект проходил вместе с init нового класса (Controller)

Если у кого-то нет ясности в вопросе, то не стесняйтесь спрашивать в комментариях

Заранее спасибо: -)

1 Ответ

1 голос
/ 06 сентября 2011

Что вы можете сделать, это сделать вашу переменную данных свойством (и синтезировать ее), чтобы вы могли установить ее сразу после инициализации в классе, который вы инициализируете.

В качестве альтернативы вы можете создать свой собственный метод инициализации следующим образом:

- (id)initWithStyle:(UITableViewStyle)style andData:(myFaceData *)dat {
    if ((self = [super initWithStyle:style])) {
        self.dat = dat;
    }

    return self;
}

И для вызова вашего инициализатора вы можете сделать это в вызывающем классе (где theData - данные для передачи):

editAlarm *ob = [editAlarm alloc] initWithStyle:UITableViewStyleGrouped andData:theData];
...