【问题标题】:How to pass data between AppDelegate and SecondViewController如何在 AppDelegate 和 SecondViewController 之间传递数据
【发布时间】:2012-09-05 22:54:10
【问题描述】:

我有@property NSDate 实例,它在方法- (void)applicationWillResignActive:(UIApplication *)application 中获得时间。

我有ViewControllerSecondController 连接到Storyboard 所以在AppDelegate 实现块的代码中我没有任何ViewController 和SecondViewController 实例。方法- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 只返回YES。

问题是:我必须将时间从@property NSDate 实例传递到SecondViewController,当应用程序激活时显示,但我不知道如何检查应用程序来自后是否显示SecondViewController背景。

我知道我可以使用 AppDelegate:

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

然后获取他的NSDate @property,但我如何检查何时必须获取此数据?

我应该使用ViewController的哪种方法?

【问题讨论】:

    标签: objective-c uiviewcontroller appdelegate pass-data


    【解决方案1】:

    如果您希望SecondViewController 的视图在出现时始终具有当前日期值,请在viewWillAppear: 期间从数据模型(在本例中为 AppDelegate)中获取它。

    【讨论】:

    • 问题是当我在SecondViewController viewWillAppar: 方法中添加NSLog 时,我会看到任何结果。当我点击主页时会显示此视图,当我返回时也会显示viewWillAppear没有调用。
    • 这很奇怪。是什么原因导致使用SecondViewController?如果是转场,是什么触发转场...代码或某些用户操作?
    • 是的,我有ViewControllerUITableView。当我选择Cell 然后通过Modal Segue 应用程序显示SecondViewController。当显示此SecondViewController 时,我想锁定iDevice,但是当我这样做时,AppDelegate 获取我执行此操作的日期以及当应用程序激活时,我想从AppDelegate 获取数据并在SecondViewController 中编辑它.任何viewWill...viewDid... 都不能与SecondViewController 一起使用:/
    • 在这种情况下,让您的SecondViewController 收听UIApplicationDidBecomeActiveNotification 通知。当设备解锁时,您应该会接到电话。
    猜你喜欢
    • 2019-12-05
    • 1970-01-01
    • 1970-01-01
    • 2016-05-30
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    相关资源
    最近更新 更多