【问题标题】:Load specific view in Navigation View Controller在导航视图控制器中加载特定视图
【发布时间】:2013-10-04 17:01:53
【问题描述】:

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

在我的第一个视图控制器(第一个选项卡)中有三个按钮。我希望第一个按钮在导航控制器中加载详细视图。 (如下图所示)

Storyboard

我怎样才能做到这一点?

我尝试调用在 LocationsTableViewController 中执行转场的方法,但这给了我错误“Receiver () has no segue with identifier 'addLocation'”。虽然肯定存在 segue "addLocation"。

StartViewController中连接按钮的方法:

- (IBAction)addLocationView:(id)sender {

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

}

LocationsTableViewController:

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

【问题讨论】:

    标签: ios objective-c uiviewcontroller


    【解决方案1】:

    您的“addLocation”转场是从位置表视图控制器到添加位置视图控制器,因此转场存在于 LocationsTableViewController 上。那是对的。但是,如果您当前的视图控制器不是 LocationsTableViewController,则调用该 segue 是没有意义的。

    你有几个选择:

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

    【讨论】:

    • 您好,我尝试了选项 1 和 2,但只显示视图,没有标签栏和导航栏。由于 self.navigationController,选项 3 不起作用。 Startview 不是导航控制器。我试过 LocationsViewController *LVC = [[LocationsViewController alloc] init]; [self presentViewController:LVC 动画:YES 完成:Nil]; [LVC.navigationController pushViewController:[[AddLocationViewController alloc] init] animated:YES];但这里只显示一个空的标签栏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 2012-10-08
    • 1970-01-01
    相关资源
    最近更新 更多