![](/img/trans.png)
[英]Multiple Segues to one ViewController with NavigationController?
[英]Embed a UIViewController in a NavigationController using segues
我有一個viewController 通常 (最經常)通過使用推式segue訪問。 該viewController需要嵌入在UINavigationController中。 因此通常情況下,這沒有問題。 push segue負責推送viewController,因此viewController具有UINavigationController。
我的問題是,在某些情況下,我想使用模式搜索來呈現相同的viewController。 當我這樣做時,viewController不會嵌入在navigationController中。 有沒有辦法使用segues執行此操作?
我知道可以通過創建UINavigationController,將rootView設置為viewController,然后以模態表示的方式,完全在代碼中完成操作。 可以使用以下代碼完成:
MyViewController *viewController = [[MyViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[self presentModalViewController:navController animated:YES];
但是我如何使用Segues做同樣的事情?
為了進一步清晰起見,下面是一些代碼來補充我如何在prepareForSegue方法中使用接受的答案。
使用模態搜索時
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue destinationViewController] isEqualToString:@"Modal to MyVC"])
{
UINavigationController *nav = [segue destinationViewController];
MyViewController *vc = [nav topViewController];
//setup vc
}
}
使用Push Segue時
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue destinationViewController] isEqualToString:@"Push to MyVC"])
{
MyViewController *vc = [segue destinationViewController];
//setup vc
}
}
在情節提要中,您可以通過以下方法將ViewController嵌入到導航控制器中:選擇View Controller,然后從頂部的Editor->Embed In->Navigation Controller
菜單中進行選擇。 從另一個視圖控制器中,您可以控制拖動到此“導航”控制器以設置modal
序列。 您也可以控制拖動到原始View Controller,以在不使用Navigation Controller的情況下為其設置序列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.