【发布时间】:2014-01-28 16:01:42
【问题描述】:
我在使用 UINavigationController 的 UIViewController 中编写以下代码。
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.hidesBackButton = YES;
self.navigationController.interactivePopGestureRecognizer.delegate = (id<UIGestureRecognizerDelegate>) self;
}
我构建并运行我的应用程序,
self.navigationItem.hidesBackButton = YES;
上面可以正常工作,但是
self.navigationController.interactivePopGestureRecognizer.delegate = (id<UIGestureRecognizerDelegate>) self;
那个不工作。
所以,我重写了下面的代码。
- (void)viewDidLoad {
UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithCustomView:[[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 44.0f, 44.0f)]];
backBarButton.tintColor = [UIColor clearColor];
self.navigationController.interactivePopGestureRecognizer.delegate = (id<UIGestureRecognizerDelegate>)self;
self.navigationItem.leftBarButtonItem = backBarButton;
}
它工作正常。
但是,我想使用第一个示例。 第一个清楚地表达了我想要做什么。
有人知道吗?
【问题讨论】:
-
您是否尝试过先分配代理然后隐藏
back按钮? -
看起来不错!当我在
viewDidLoad中执行此操作时,它不起作用。但是,在viewWillAppear中,它可以正常工作。下一个问题出现了。现在,我在NavigationController-1,我想回到NavigationController 2。然后我尝试从“2”移动到“1”。但是,它只是尝试。我没有完成,最后我回到“2”。并看到 UINavigationBar,出现奇怪的点。为什么我会这样......
标签: ios objective-c cocoa uinavigationcontroller uinavigationitem