0

我在 UINavigationController 中嵌入了一个 UITableViewController。我只在 iOS 6 中使用 Storyboard。当我点击 Reports Row 时,我会在右侧看到一个不错的 Push 动画。当我按下 Auto Generated Back 按钮时,我的导航标题会消失并动画到左侧,但我的 UITableView 突然出现了。我的目标是让 UITableview 有一个标准的推送动画,就像按下后退按钮时的标准一样。希望这是帮助我调试所需的相关代码。我完全不知所措。当我向上导航导航树时,我在深入研究的每个视图中都看到了相同的行为。它们都是 UITableViewController 的子类。

在我获得更多声望点之前,我无法发布我的 Storyboard 的图片。如果需要帮助查看层次结构,我可以通过电子邮件向某人发送一张照片。

我的故事板层次结构是:

UITabviewController
-UINavigationViewController
--ReportsVC
---AvaliableEquipmentVC
----AvaliableEquipmentDetailVC

报告VC.h

#import <UIKit/UIKit.h>
@interface ReportsVC : UITableViewController
@property (strong, nonatomic) NSMutableArray *reportList;
@end

报告VC.m

#import "ReportsVC.h"
#import "AvaliableEquipment.h"

@interface ReportsVC ()

@end

@implementation ReportsVC

- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.reportList = [[NSMutableArray alloc] init];

    // List Reports Here
    [self.reportList addObject:@"Avaliable Equipment"];
    [self.reportList addObject:@"Active Lease Business"];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
    return [self.reportList count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"ReportNameCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    UILabel *reportTitle = (UILabel *)[cell viewWithTag:100];
    NSString *text = [self.reportList objectAtIndex:indexPath.row];
    reportTitle.text = text;
    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    switch (indexPath.row)
    {
        case 0: [self performSegueWithIdentifier:@"AvaliableEquipment" sender:nil]; break;
        case 1: [self performSegueWithIdentifier:@"ActiveLeaseBusiness" sender:nil]; break;
    }
}

在我的 AvaliableEquipmentVC 中,除了查询 JSON 列表以获取我的 TableView 数据之外,我没有做任何特别的事情。当我按下通过情节提要自动生成的后退按钮时,我没有返回 UITableViewController ReportsVC 的动画。

4

1 回答 1

1

好的,找出我的问题所在。在我的最顶层对象 TableViewController 中,我有一个 (void)viewWillAppear 以及一个 (void)viewDidAppear 方法。在这些方法中,我必须添加 [super viewWillAppear:animated]; 以及 [super viewDidAppear:animated]; 他们每个人的线路。这导致动画重新开始工作。我忘记了我重写了那些来做一些自定义逻辑。

于 2012-12-27T21:25:04.887 回答