在Navigation View Controller中加载特定视图

时间:2013-10-04 17:01:53

标签: ios objective-c uiviewcontroller

我有一个标签栏控制器,里面有3个视图控制器和一个导航视图控制器。 该导航视图控制器具有表视图控制器和详细视图。

在我的第一个视图控制器(第一个标签)中有三个按钮。我想要第一个按钮来加载导航控制器中的详细视图。 (如下图所示)

Storyboard

我怎样才能实现这个目标?

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

连接到StartViewController中按钮的方法:

- (IBAction)addLocationView:(id)sender {

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

}

LocationsTableViewController:

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

1 个答案:

答案 0 :(得分:0)

您的“addLocation”segue是从Locations Table View Controller到Add Location View Controller,因此segations存在于LocationsTableViewController上。那是正确的。但是,如果您当前的视图控制器不是LocationsTableViewController,则调用该segue是没有意义的。

您有几个选择:

  1. 故事板选项#1:从StartViewController到AddLocationViewController创建一个新的segue,并在addLocationView:中执行该segue。
  2. 故事板选项#2:从按钮到AddLocationViewController创建一个新的segue,然后删除IBAction。单击按钮时,故事板将自动调用该segue。
  3. 程序选项:实例化一个新的AddLocationViewController并将其推送到导航堆栈:[self.navigationController pushViewController:[[AddLocationViewController alloc] init] animated:YES]