【问题标题】:Steps on how to push segue to tableviewcontroller如何将 segue 推送到 tableviewcontroller 的步骤
【发布时间】:2014-01-10 00:35:28
【问题描述】:

我在从 push segue 的 tableview 中显示数据时遇到问题。你如何让数据从 push segue 中出现在 tableview 中?我需要实现委托/协议吗?我将添加我的逻辑以从推送 segue 中显示 TableViewController 中的行的方法。我能够导航到 tableview 并返回到按钮排序视图控制器。

有人可以告诉我类似于我编写“我的逻辑”的过程吗?我被困在第 4 步。如果您有更简单的执行方法,请告诉我。

我正在尝试协调的控制器。

  • “EventFeedController.m” TableViewController 从标签栏控制器执行。这显示了事件。
  • “ButtonSort.m”将 segue 推送到 EventFeedController.m
  • AppDelegate.m 有数组。

我的逻辑...

在故事板中。

  1. 控件从 ButtonSort 中的 UIButton 直接拖到 EventsFeedViewController(不是到导航控制器,而是直接到视图 EventViewController 本身。)。 (不确定我是否应该控制拖动到视图控制器或 EventsfeedViewController 的导航控制器)
  2. 从控件拖动的弹出窗口中选择 push segue
  3. 给 Button 一个标识符 Button01(这将找到 items 数组 where eventFeed.eventType = @"Festival";)所以为了清楚起见 Button01 = Find events with eventFeed.eventType = @"Festival";
  4. 步骤我卡住了。不确定如何访问或显示在 AppDelegate.m didFinishLaunchingWithOptions 段落中创建的数组。我认为 EventsFeedViewController 中的 cellForRowAtIndexPath 将负责被调用并再次显示行。

数组代码示例 AppDelegate.m

Events 数组创建了 AppDelegate.m。单击按钮 segue 时,我需要拉事件。

_events = [NSMutableArray arrayWithCapacity:20];

//***************************************
// Event feed related area
//***************************************
SDEventsFeed *eventFeed = [[SDEventsFeed alloc] init];
eventFeed.eventTitle = @"Event Fest Test 1";
eventFeed.eventDescription = @"This is not to be missed";
eventFeed.eventStartTime = @"2:00 PM";
eventFeed.eventImage = [UIImage imageNamed:@"fest.jpg"];
eventFeed.eventType = @"Festival";
[_events addObject:eventFeed];

【问题讨论】:

    标签: ios iphone objective-c uitableview segue


    【解决方案1】:

    在要推送以显示数据的表视图控制器中,您需要添加一个属性来保存该数据。类似于以下内容:

    @property (nonatomic, strong) MyDataClass *myData;
    

    然后在您从中推送的视图控制器(带有推送表格视图控制器的按钮的视图控制器)中,您需要添加一个方法- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender。您可以通过以下方式实现它:

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
        if ([segue.identifier isEqualToString:@"YourSegueIdentifierFromStoryboard"]) {
            YourTableViewControllerClass *viewController = segue.destinationViewController;
    
            viewController.myData = self.myData;
        }
    }
    

    【讨论】:

    • “MyDataClass”在做什么?我在 TableViewController 中有一个 NSMutableArray,可以像“viewController.events”一样访问它,但不知道如何获取 self.myData 来填充数据。事件数组位于 AppDelegate.m 中。有什么建议么? @加文
    • 查看更多代码可能会有所帮助。我不清楚的是,这个 _events 数组当前是否在您的任何视图控制器中执行任何操作,或者目前您是否还没有弄清楚如何从第一个显示的控制器中访问它?同样,如果您添加更多代码,可能会更容易提供帮助。
    【解决方案2】:

    要从 AppDelegate 中提取数据,您需要执行以下操作。

    1. 确保将 AppDelegate.h 导入到您的类中进行 segue。
    2. 您可以在 AppDelegate.h 中创建一个 NSMutableArray 属性来保存数组数据“eventArray”。

    这只是一种可能的解决方案。

    按钮排序.m

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
    
    if ([segue.identifier isEqualToString:@"Button01"]) {
    
        YourTableViewControllerClass *viewController = segue.destinationViewController;
    
        YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
    
        viewController.events = appDelegate.eventsArray;
    
     } 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-23
      • 1970-01-01
      • 1970-01-01
      • 2015-04-04
      相关资源
      最近更新 更多