0

我有一個MapViewController,封裝是Segue公司到一個UIViewController都放在一個故事板一個UITableViewController一個UINavigatioController一個UINavigationController。在地圖上點擊它時有一個按鈕我希望調用UITableViewController並能夠打開UIViewController。呼叫從一個MapViewController

如果我叫

[self presentViewController:self.tableViewController animated:NO completion:nil]; 

的TableViewController顯示,但在披露指標點擊拋出異常時:

「找不到賽格瑞‘showApartmentDetails’導航控制器。只有當源控制器由UINavigationController實例管理時,才能使用推塞網。「

創建類型的UINavigationController的屬性和使用

self.navigationController = (UINavigationController*)[self.storyboard instantiateViewControllerWithIdentifier:@"myNavigationController"]; 
[self.navigationController pushViewController:self.tableViewController animated:NO]; 

什麼都不做初始化它!

請告知我該如何調用導航器?

回答

0

問題是因爲

[self presentViewController:self.tableViewController animated:NO completion:nil]; 

需要出示該處理tableViewControllerUINavigationController。因此,您需要將故事板中的UINavigationController鏈接到名爲UINavigationController *tableViewNavigationController的插座,其編號爲MapViewController

[self presentViewController:self.tableViewNavigationController animated:NO completion:nil]; 

或剛剛從按鈕,在MapViewController在故事板上添加一個模式SEGUE到UINavigationController

+0

你是什麼意思tableViewNavigationController是什麼類型的屬性呢? self是mapviewcontroller它沒有presentViewController接口'沒有可見的@interface'MapViewController'聲明選擇器'pushViewController:animated:' –

+0

@liva我編輯了我的解決方案。這個屬性應該是包含'tableViewController'的'UINavigationController'。 –

+0

創建一個插座,我需要創建我自己的類,從UINavigationController派生的,什麼也不做,而是我用這個'self.navigationController =(UINavigationController *)[self.storyboard instantiateViewControllerWithIdentifier:@「myNavigationController」];' –