【问题标题】:iOS7 segue without using StoryboardsiOS7 segue 不使用 Storyboards
【发布时间】:2014-02-18 02:23:39
【问题描述】:

我有一个带有UITableView 的应用程序(在PatientViewController 中),每次点击不同的单元格都应该向ArticleViewController 发送不同的值。我使用以下代码在ViewControllers 之间进行了每次转换:

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
NewsViewController *mv = (NewsViewController*)[mainStoryboard instantiateViewControllerWithIdentifier:@"news"];
[self presentViewController:mv animated:YES completion:NULL];

我不想使用NavigationController,也不想使用 Storyboard 来创建 segue。那么我怎样才能只编写代码而不使用 Storyboard 呢?谢谢。

【问题讨论】:

  • 您使用的是什么容器?你想要自定义动画还是 UINavigationController 样式?
  • 我有一个 UIViewController 扩展 UITableViewDelegate 和 UITableViewDataSource。它有一个表格视图和一个名为“Cell”的自定义单元格。动画和 NavController 不是我关心的。如您所知,我们正在从按钮右键单击并拖动到另一个视图控制器以在 Storyboard 上创建一个 segue。 我不想要它我想要做的就是在点击 tableviewcell 时创建一个 segue,而不是只使用 StoryBoard 进行编码。

标签: ios uiviewcontroller segue pass-data


【解决方案1】:

如果您不想通过 Storyboard 制作任何视图控制器,请使用 XIB 制作视图控制器。然后,调用下面的方法来初始化一个实例。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil; 

当一个单元格被选中时,你可以使用下面的方法来呈现一个你想要显示的视图控制器。

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion

【讨论】:

    【解决方案2】:

    您可以使用以下内容创建 UIStoryBoardSegue:

      UIStoryboardSegue :: initWithIdentifier:source:destination:
    

    然后,从源 UIViewController,可以调用以下内容:

     performSegueWithIdentifier:sender:
    

    有关详细信息,请参阅 UIStoryBoardSegue 文档的概述部分。

    【讨论】:

      【解决方案3】:

      试试这个:

       NewsViewController *nVC = [self.storyboard instantiateViewControllerWithIdentifier:@"news"];
      [self presentViewController:nVC animated:YES completion:NULL];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-16
        • 1970-01-01
        • 2014-01-08
        • 1970-01-01
        • 2013-11-19
        • 2013-12-28
        • 1970-01-01
        • 2016-07-18
        相关资源
        最近更新 更多