UIView не вращается - PullRequest
       17

UIView не вращается

0 голосов
/ 28 ноября 2009

У меня есть следующий код в UIViewController

Notepad *notepad = [[Notepad alloc] initForNewTopLevelTask:0 andDAO:self.dao];

[self.navigationController pushViewController:notepad animated:YES];
[notepad release];

Метод initForNewTopLevelTask: andDAO: is:

- (id) initForNewTopLevelTask:(int) theTableSize andDAO:(DAO*) aDAO {
    self.dao = aDAO;
    tableSize = [[NSNumber alloc] initWithInt:theTableSize];
    self.isNew = [NSNumber numberWithBool:YES];
    self.isSubtask =[NSNumber numberWithBool:NO];
        return self;
}

Когда я поворачиваю вид, ничего не происходит, он не вращается. Если я изменю строку UIViewController на:

Notepad *notepad = [[Notepad alloc] init];

Вращается нормально!

Представление не является частью контроллера вкладок, и я реализовал:

// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return YES;
}

1 Ответ

1 голос
/ 28 ноября 2009

Вы всегда должны вызывать метод init родительского класса в своих собственных методах init. По умолчанию для любого объекта, который в какой-то момент простирается от NSObject.

См. http://developer.apple.com/iphone/library/documentation/cocoa/Conceptual/ObjectiveC/Articles/ocAllocInit.html#//apple_ref/doc/uid/TP30001163-CH22-SW4

Измените вашу функцию инициализации на:

- (id) initForNewTopLevelTask:(int) theTableSize andDAO:(DAO*) aDAO {
    if ( self = [super init] ) {
    self.dao = aDAO;
    tableSize = [[NSNumber alloc] initWithInt:theTableSize];
    self.isNew = [NSNumber numberWithBool:YES];
    self.isSubtask =[NSNumber numberWithBool:NO];
    }
    return self;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...