簡體   English   中英

從UIViewController呈現UINavigationController沒有默認的取消按鈕

[英]Presenting a UINavigationController from a UIViewController doesn't have default cancel button

我試圖從UIViewController模態呈現UINavigationController 根據以前的經驗,我很確定在執行此操作時,導航欄中默認應有一個“取消”按鈕,但是對於以下代碼,導航欄是完全空白的。 有任何想法嗎?

UIViewController *rootVC = [[UIViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:rootVC];
[self presentViewController:navController animated:YES completion:nil];

默認情況下,您不會獲得任何條形按鈕項目。 您需要在演示前添加按鈕,或更准確地說,是從根視圖控制器內部添加按鈕。 通常,您需要設置委派,在此情況下,呈現的視圖控制器會通知呈現的視圖控制器應將其關閉。 通常不建議從根視圖控制器內部進行自我釋放。

– presentViewController:animated:completion:僅將視圖控制器顯示為模態視圖控制器,即使您將其設置為導航控制器也是如此。 在您的情況下,最簡單的解決方案是在navController中,將左欄按鈕設置為“取消”按鈕,並在單擊該按鈕時調用dismiss,

UIBarButtonItem *cancelButton= [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(dismissViewController)];
 navController.navigationItem.leftBarButtonItem = cancelButton;

- (void)dismissViewController
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

希望對您有所幫助。

暫無
暫無

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

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