2017-09-15 104 views
0

我有一個關於將navigationBar.isUserInteractionEnabled設置爲false的問題。我將它設置在viewDidLoad和viewDidLayoutSubviews中。但是這個設置不起作用,因爲即使我設置爲false,該值也是如此。 只有當我回到前一個視圖(當單擊backButton並且navigationBar.isUserInteraction應該設置爲false時),我需要設置爲false。 我該怎麼辦?還有其他代表嗎?或者我需要在調用viewDidLoad之後設置定時器。 Here is an image to make it clear what I mean哪裏可以設置NavigationController.NavigationBar.isUserInteractionEnabled

+0

檢查我所提供的代碼來禁用輕敲後退按鈕 –

回答

1

如果你是具體的關於禁用導航欄的用戶交互你可以做它的一些特殊原因,通過調用

斯威夫特:

self.navigationController?.navigationBar.isUserInteractionEnabled = false 

的Objective-C:

[self.navigationController.navigationBar setUserInteractionEnabled:false]; 

編輯2:

我需要設置爲false,只有當我回到以前的視圖(當點擊 返回按鈕,然後navigationBar.isUserInteraction應該 被設置爲false)

你不能禁用viewWillDisappear中的導航欄用戶交互viewController,因爲如果backButton按時間點擊viewWillDisappear被調用ViewController從導航堆棧中刪除。

所以,當你調用self.navigationController你的導航控制器是零。

最簡單的解決方案,添加您自己的後退按鈕,並在實際彈出VC之前禁用導航欄的用戶交互。

在你secondVC

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"back" style:UIBarButtonItemStyleBordered target:self action:@selector(handleBack)]; 

    self.navigationItem.leftBarButtonItem = backButton; 
    // Do any additional setup after loading the view from its nib. 
} 

-(void)handleBack { 
    [self.navigationController.navigationBar setUserInteractionEnabled:false]; 
    [self.navigationController popViewControllerAnimated:true]; 
} 

這將做的工作

編輯3:

你需要設置導航欄的用戶交互您可以通過禁用達到同樣的效果左右條形按鈕項的用戶交互

for item in self.navigationItem.leftBarButtonItems! { 
     item.isEnabled = false 
    } 

    for item in self.navigationItem.rightBarButtonItems! { 
     item.isEnabled = false 
    } 

您可以根據您的邏輯在viewDidLoad,viewWillAppear或適合您的代碼的地方啓用和禁用它們。

Objective-C的

for(UIBarButtonItem *item in self.navigationItem.leftBarButtonItems) { 
    [item setEnabled:false]; 
} 

for(UIBarButtonItem *item in self.navigationItem. rightBarButtonItems) { 
    [item setEnabled:false]; 
} 
+2

提問標記的語言Objective C的兄弟 –

+0

@庵埠,KARTHIK導航欄的用戶交互更新的答案: lemme更新 –

+0

@ anbu-karthik:感謝編輯:)錯過了它,而在Xcode中再次複製代碼:) –

相關問題