簡體   English   中英

將工具欄添加到導航ViewController的正確方法是什么?

[英]What is the correct way to add a toolbar to a navigation viewcontroller?

所以我試圖將UIToolbar添加到UINavigation層次結構的一部分UIViewController中,我想知道什么是最好的方法。 我知道在iOS3中,他們使作為導航層次結構一部分的每個viewcontroller擁有自己的工具欄,因此我認為這是最好的方法。 但是,我正在使用的語法令人煩惱,因為我使用三種不同類型的語法來添加工具欄,如下所示:

[[self navigationController] setToolbarHidden:NO]; 
[self setToolbarItems: myToolbarButtons];
[[[self navigationController] toolbar]setBarStyle:UIBarStyleBlack];

從我將工具欄添加到導航視圖的子視圖起,這可以正常工作,並且實際上修復了錯誤的內存訪問。 但是我不知道如何使工具欄可見后如何執行“ self setToolbarItems”。 它將成為視圖控制器的一部分嗎? 就像我說的那樣,這行得通,但是困擾着我。

UIVIewController具有一個稱為UINavigationController的屬性。 每個UINavigationController都有自己的內置工具欄。 所以當你打電話時

[[self navigationController] setToolbarHidden:NO];

您實際上是在啟用每個UIViewController隨附的navigationController屬性的工具欄。 當您使用以下兩行設置工具欄的項目和樣式時:

[self setToolbarItems: myToolbarButtons];
[[[self navigationController] toolbar]setBarStyle:UIBarStyleBlack];

您實際上是在設置該UINavigationController的內置工具欄的項目。

希望這可以幫助。 請查看《 UIViewController類參考》以獲取更多信息。

在第1行中,您正在向工具欄的超級視圖發送一條消息以隱藏它,這是通過這種方式完成的,因為這樣,超級視圖就可以在最佳時間進行所需的任何調整大小/布局。

導航控制器從第2行中self的變量讀取工具欄,因為導航控制器當前正在顯示self

在第3行中,您將訪問由navigationController管理的工具欄本身。 這是工具欄的一部分,與自身相關,與導航控制器無關,因此導航控制器沒有公開修改工具的方式,允許您直接訪問工具欄然后進行修改。

這樣,您可以在各個級別訪問工具欄,從而使自己更輕松。 對於在第一行中,您不必管理顯示它。 在第二和第三行中,您不必管理創建/銷毀它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM