【发布时间】:2014-01-28 15:54:40
【问题描述】:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
NSString *storyName;
if (isIPAD)
storyName = @"Main_iPad";
else
storyName = @"Main";
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyName bundle:nil];
RMViewController *controller = (RMViewController *)[storyboard instantiateInitialViewController];
NSURL *url = (NSURL *)[launchOptions valueForKey:UIApplicationLaunchOptionsURLKey];
if (url != nil && [url isFileURL]) {
[controller handleOpenURL:url];
}
return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
NSString *storyName;
if (isIPAD)
storyName = @"Main_iPad";
else
storyName = @"Main";
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyName bundle:nil];
RMViewController *controller = (RMViewController *)[storyboard instantiateInitialViewController];
if (url != nil && [url isFileURL]) {
[controller handleOpenURL:url];
}
return YES;
}
这就是我的 AppDelegate 中的内容。这有助于我用此处所述的新数据覆盖旧 iPhone 数据:http://www.raywenderlich.com/1980/email-tutorial-for-ios-how-to-import-and-export-app-data-via-email-in-your-ios-app#comments
现在,当我调用函数 handleOpenURL 时,数据保存得很好,但是当我尝试根据新数据设置我的 IBOutlets 时,我的所有出口实际上都是 nil(使用断点测试)。
我很困惑,因为我得到的新数据实际上是正确的,但是当我尝试将其分配给 IBOutlet(文本字段或标签)时,它没有响应。
我认为这与进入后台有关,因为如果我杀死应用程序并稍后启动它,应用程序就会加载新数据。
有什么帮助吗??
【问题讨论】:
-
会不会是我在appdelegate中手动实例化后又实例化了ViewController丢了storyboard?
标签: ios objective-c background null iboutlet