2013-10-04 86 views
0

我有一个带有3个视图控制器和一个导航视图控制器的标签栏控制器。 该导航视图控制器具有表格视图控制器和详细视图。加载导航视图控制器中的特定视图

在我的第一个视图控制器(第一个选项卡)中有三个按钮。我想要第一个按钮在导航控制器中加载详细视图。 (如参见下图)

Storyboard

我怎样才能做到这一点?

我曾尝试调用在LocationsTableViewController中执行segue的方法,但是这给了我错误“Receiver()没有标识符'addLocation'”。虽然segue“addLocation”当然存在。

法StartViewController连接到按钮:

- (IBAction)addLocationView:(id)sender { 

    LocationsTableViewController *LTVC = [[LocationsTableViewController alloc] init]; 
    [LTVC addLocation]; 

} 

LocationsTableViewController:

-(void)addLocation 
{ 
    [self performSegueWithIdentifier: @"addLocation" sender: self]; 
} 

回答

0

你 “addLocation” 赛格瑞是从位置表视图控制器使用添加位置视图控制器,所以SEGUE存在在LocationsTableViewController上。那是对的。但是,如果您当前的视图控制器不是LocationsTableViewController,则调用该segue是没有意义的。

您有几种选择:

  1. 故事板选项#1:请从StartViewController到AddLocationViewController新SEGUE,并在addLocationView:执行SEGUE。
  2. 故事板选项#2:从按钮新增一个Segue到AddLocationViewController,并删除您的IBAction。故事板会在按钮被点击时自动调用该继续。
  3. Programatic选项:实例化一个新的AddLocationViewController并将其推入导航堆栈:[self.navigationController pushViewController:[[AddLocationViewController alloc] init] animated:YES]
+0

嗨, 我已经尝试过选项1和2,但只有视图出现,没有tabbar和导航栏。 由于self.navigationController,选项3不起作用。 Startview不是导航控制器。我试过 LocationsViewController * LVC = [[LocationsViewController alloc] init]; [self presentViewController:LVC animated:YES completion:Nil]; [LVC.navigationController pushViewController:[[AddLocationViewController alloc] init] animated:YES]; 但这里只显示一个空的tabbar。 – Drew