我有一个UINavigationController作为标签栏控件中的一个视图。它看起来很好,我有一个UIBarButtonItem应该加载一个子视图。我把按钮连接到调用pushViewController的IBAction,但是当我这样做时,没有发生。它不会崩溃或任何事情......它只是没有做任何事情。我试过:使用不同的视图控制器作为子视图(没有运气)。有人有什么建议吗?这是我的代码:
标题文件:
#import <UIKit/UIKit.h>
#import "FSSettings.h"
#import "MeasureSelector.h"
#import "Dashboard.h"
@interface DashboardNavigationController : UIViewController {
IBOutlet UINavigationController *navController;
IBOutlet UINavigationBar *navBar;
IBOutlet UIBarButtonItem *measureButton;
}
@property (nonatomic, retain) IBOutlet UINavigationController *navController;
@property (nonatomic, retain) IBOutlet UINavigationBar *navBar;
@property (nonatomic, retain) IBOutlet UIBarButtonItem *measureButton;
- (IBAction) showMeasureScreen:(id)sender;
@end
包含操作的.m文件:
// Displays the measure screen
- (IBAction) showMeasureScreen:(id)sender
{
NSLog(@"Loaded measure screen");
MeasureSelector *msel = [[MeasureSelector alloc] initWithNibName:@"MeasureSelector" bundle:nil];
[[self navigationController] pushViewController:msel animated:YES];
NSLog(@"Done.");
}
当我点击按钮时没有任何反应(但我确实看到了日志消息)。然而,我可以一遍又一遍地做到这一点,没有任何不良影响。
答案 0 :(得分:2)
UIViewController的navigationController属性是指UIViewController属于层次结构的nav控制器。如果我正确理解了场景,DashboardNavigationController将管理作为UINavigationController容器的视图,因此这个属性为零是有道理的。
使用您创建的插座从导航控制器的层次结构外部访问导航控制器。