有关如何将segue推送到tableviewcontroller的步骤

时间:2014-01-06 21:35:29

标签: ios iphone objective-c uitableview segue

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

有人能告诉我类似我编写My Logic的过程吗?我被困在第4步。如果您有更简单的执行方式,请告诉我。

控制器我正在尝试协调。

  • “EventFeedController.m”从Tab Bar Controller执行的TableViewController。这显示了事件。
  • “ButtonSort.m”将segue推送到EventFeedController.m
  • AppDelegate.m有数组。

我的逻辑......

在故事板中。

  1. 控制从ButtonSort中的UIButton直接拖动到EventsFeedViewController(不是导航控制器,而是直接拖到视图EventViewController本身。)。 (不确定我是否应该控制拖动以查看控制器或EventsfeedViewController的导航控制器)
  2. 从控制拖动的弹出窗口中选择推送segue
  3. 给Button一个Button01的标识符(这将找到itemsFeed.eventType = @“Festival”的项目数组;)为了清楚起见,Button01 =使用eventFeed.eventType = @“Festival”查找事件;
  4. 我坚持下去。不确定如何访问或显示在AppDelegate.m didFinishLaunchingWithOptions段中创建的数组。我认为EventsFeedViewController中的cellForRowAtIndexPath将负责调用并再次显示行。
  5. 数组代码AppDelegate.m

    的示例

    事件数组创建了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];
    

2 个答案:

答案 0 :(得分:0)

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

@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;
    }
}

答案 1 :(得分:0)

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

  1. 确保将AppDelegate.h导入到执行segue的类中。
  2. 您可以在AppDelegate.h中创建一个NSMutableArray属性来保存数组数据“eventArray”。
  3. 这只是一种可能的解决方案。

    ButtonSort.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;
    
     } 
    }