我创造了这样的一个ios7单:iOS的单viewDidLoad中的空和viewDidAppear不
SharedData.h
@interface SharedData : NSObject
{
}
+ (id)sharedInstance;
@property (strong, nonatomic) NSMutableArray *list;
@end
SharedData.m
#import "SharedData.h"
@implementation SharedData
@synthesize list;
// Get the shared instance thread safe
+ (SharedData *)sharedInstance {
static dispatch_once_t once = 0;
static SharedData *sharedInstance = nil;
dispatch_once(&once, ^{
sharedInstance = [[self alloc] init];
});
return sharedInstance;
}
- (id)init {
self = [super init];
if (self) {
//initialize
list = [[NSMutableArray alloc] init];
}
return self;
}
@end
我总是使用此代码访问此课程:
SharedData *sharedData = [SharedData sharedInstance];
现在的问题是,当我切换viewDidLoad方法中的视图列表是空的,但在我的viewDidAppear方法一切都很好。有任何想法吗?
编辑: 这是我的代码是如何变化的看法:
SharedData *sharedData = [SharedData sharedInstance];
//clear feed and add new feed
[sharedData.list removeAllObjects];
[sharedData.list addObjectsFromArray:newList];
//show new gui
[self.navigationController performSegueWithIdentifier:@"goToMain" sender:self];
注:我从一个普通视图控制器推到一个TabBarController - > NavigationController - > TableViewController显示列表。
我用代码编辑了问题。我用segue执行开关。我应该在哪里放置[self.tableView reloadData]? viewDidAppear已经太晚了。这给了一个丑陋的过渡 – perotom
嗯......它似乎是正确的,你可以在这里发布您的prepareForSegue代码? 在执行'performSegueWithIdentifier'之前,您是否检查过单身人员列表是否正确加载? – gabuh
我不使用performSegueWithIdentifier方法。这是一个故事板赛车模式和翻转。是的,检查它。它是正确的。感谢您的帮助! – perotom