我有几个控制器并使用 Typhoon 将对象作为属性注入到这些控制器中。我使用了 Plist 集成。我发现有时对象没有按预期注入到视图控制器中。
例如,MainTabBarController 是初始视图控制器,SplashViewController 是其他一些视图控制器。我已将该对象作为代码中的属性注入。验证该对象已注入 MainTabBarController。
在某些时候,我需要从 MainTabBarController 中显示 SplashViewController,如下所示:
SplashViewController *vc = [[UIStoryboard storyboardWithName:@"Main"
bundle:[NSBundle mainBundle]]
instantiateViewControllerWithIdentifier:@"SplashNavigationController"];
[self presentViewController:vc
animated:YES
completion:nil];
当我尝试访问 SplashViewController 中的对象时,它失败了。该属性不包含该对象。
经过一番调查,我发现调用[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]得到的storyboard不是TyphoonStoryboard,而MainTabBarController的是TyphoonStoryboard。因此,我将其更改为:
SplashViewController *vc = [self.storyboard
instantiateViewControllerWithIdentifier:@"SplashNavigationController"];
[self presentViewController:vc
animated:YES
completion:nil];
然后 SplashViewController 包含注入的对象。我想确认这种行为是否是预期的,这是处理此类问题的正确方法。
非常感谢!