Проблема в том, что вы добавляете currentView.view
только как подпредставление, так что оно сохраняется в другом месте, а само currentView
- нет. Это означает, что когда вы отпускаете его, он, следовательно, освобождается, и его представление будет трудно работать без него.
Одним из решений было бы иметь currentView
в качестве переменной экземпляра и создать для нее свойство, чтобы управление памятью для вас было сделано.
@property (nonatomic, retain) UIViewController *currentView;
и затем замените строку как
currentView = [[First alloc] initWithNibName:@"First" bundle:nil];
с
self.currentView = [[First alloc] initWithNibName:@"First" bundle:nil];
Это освободит старый контроллер вида перед сохранением нового. Тогда, наконец, не забудьте выпустить currentView
в методе dealloc
класса.