代码之家  ›  专栏  ›  技术社区  ›  Elias Rahme

在主细节应用程序模板中加载不同的视图控制器

  •  6
  • Elias Rahme  · 技术社区  · 13 年前

    我正在使用Xcode 4.3.3开发一个主细节应用程序,现在在主视图控制器中,我已经成功加载了一个名为“Fav Real”的附加视图控制器
    加载此视图控制器时,它将包含从sqlite数据库获取到tableViewController中的不同项目。
    我的问题是,当我点击任何加载的行时,我需要将不同的viewController加载到detailViewController中,加载另一个视图控制器,而不是第一个。
    事实上,我迷路了,我试着做下面的方案,但我不知道如何实现我的目标。。。如有任何帮助,我们将不胜感激。 enter image description here

    如图所示,项目将在FavReal tableView中正确加载,但我的目标是,当我单击任何一行时,右侧显示的“Details”将加载,而不是DetailsViewController。
    我在FavReal.m中尝试过这段代码,但我总是得到:“应用程序试图在目标上推送一个nil视图控制器。

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    
     Details * vc4 = [self.storyboard instantiateViewControllerWithIdentifier:@"Details"];
     [self.navigationController pushViewController:vc4 animated:YES];
    
    }
    

    谢谢你抽出时间,如果需要更多细节,请告诉我

    1 回复  |  直到 13 年前
        1
  •  0
  •   Elias Rahme    13 年前

    如果有人和我有同样的问题,我找到的唯一解决方案不是加载不同的视图控制器并替换原始的detailViewController,但实际的解决方案是创建一个新的故事板,并在单击“收藏夹”按钮时显示它,这样你就会有一个很好的时尚效果,并保持数据显示的准确性。为此,请使用以下代码行:

    UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"SecondStoryboard" bundle:nil];
    UIViewController* initialHelpView = [storyboard instantiateInitialViewController];
    
    initialHelpView.modalPresentationStyle = UIModalPresentationFullScreen;
    [self presentModalViewController:initialHelpView animated:YES];
    

    您可以根据自己的喜好自由更改模态表示。
    祝你好运

    推荐文章