2013-06-16 3 views
0

У меня есть 2 вида как часть моего контроллера навигации.Switch Active View Controller Programmatically

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

Что я здесь делаю неправильно?

#import <UIKit/UIKit.h> 

@interface NearbyController : UINavigationController 

- (void) nextpage; 

@end 

#import "NearbyController.h" 
#import "DetailView.h" 

@implementation NearbyController 


-(void) nextpage { 
    NSLog(@"working"); 

    DetailView *nextView = [[DetailView alloc] init]; 
    [self pushViewController:nextView animated:YES]; 
} 

@end 

ответ

0

Если инициализировать контроллер представления программным вы должны использовать эту init.

0

Если вы установили раскадровку ID вы можете сделать это

DetailView *nextView = (DetailView *)[self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewControllerID"]; 
[self pushViewController:nextView animated:YES]; 

Если вы хотите загрузить из XIB можно назвать

DetailView *nextView = [[DetailView alloc] initWithNibName:@"MyDetailViewControllerID" bundle:nil]; 
[self pushViewController:nextView animated:YES]; 

Надеется, что это помогает!

+0

Я получаю эту ошибку: приложение попыталось нажать контроллер представления nil на цель . – centree

+0

Это означает, что контроллер просмотра u, пытающийся нажать, не был правильно назначен. Pls проверяет распределение контроллера вида и видит, если его выделено чисто – Groot

0

Если вы используете раскадровки, что вы хотите сделать, это настроить раскадровка идентификатор в инспекторе идентичности на вашем DetailViewViewController

Тогда вы хотите создать экземпляр контроллера вид следующим образом:

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
DetailView *nextView =[sb instantiateViewControllerWithIdentifier:@"DetailViewViewController"]; 
/* your identifier is your storyboard id*/ 
sb = nextView.storyboard; 

Тогда вы должен быть способен нажать ваш контроллер просмотра. Я все еще новичок в этом, но я надеюсь, что это поможет!

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