我在rightBarButtonItem
的{{1}}遇到了一个奇怪的问题。按钮的边距在UINavigationController
上消失,所以看起来像这样:
起初,我认为我的iOS7
相关类别中存在一些错误,但我删除了所有自定义代码和类别的所有头文件,只需使用UINavigationController和空视图控制器。
在UINavigationController
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
在self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
VCTestViewController *vc = [[[VCTestViewController alloc]init]autorelease];
UINavigationController *nc = [[[UINavigationController alloc]initWithRootViewController:vc]autorelease];
self.window.rootViewController = nc;
[self.window makeKeyAndVisible];
VCTestViewController.m -> viewDidLoad
问题仍然存在(如上所示)。我无法弄清楚出了什么问题。你对这个问题有任何想法吗?
答案 0 :(得分:2)
如果代码行不通,你可以分享你的代码行:
- (UIBarButtonItem *)rightNavBarButton
{
UIButton *filterBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[filterBtn setTitle:@"hello" forState:UIControlStateNormal];
filterBtn.frame = CGRectMake(0, 0,40,27);
[filterBtn addTarget:self action:@selector(getFriendsList) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *filterNavBarItem = [[UIBarButtonItem alloc] initWithCustomView:filterBtn];
return filterNavBarItem;
}
答案 1 :(得分:0)
我终于弄明白发生了什么。
βhargavḯ给出的链接不是我的问题的解决方案,但它是我的问题的原因。我的一位同事写了一个UINavigationItem
类来缩小iOS7中的空白区域。然后他使用方法调配来用他自己的方法交换系统方法setRightBarButtonItem:
。我没有意识到这一点。
因此,如果您使用自己的方法交换系统方法,我认为方法调配会非常危险。