objective-c - 仅在第二次加载 View 时运行函数

标签 objective-c ios cocoa-touch uiviewcontroller uitabbarcontroller

我正在创建一个 iOS 应用程序,它在标签栏 Controller 上有一个登录系统。选项卡栏作为根 Controller 加载,如果用户未登录,登录 subview 将填充屏幕。因为选项卡栏 Controller 的第一个 View 已经加载,所以 viewWillAppear:。我使用 viewWillAppear: 在每次加载时重新加载 TableView 。该系统运行良好。

但是,我想知道如何在第二次加载时(即用户登录后)运行一个函数(一个 void 东西),以提供特定于用户而不是在每个 View 上加载一个 - 这就是我不使用 viewDidLoad: 的原因,因为它只运行一次。

最佳答案

是的,我有更好更简单的解决方案,而不是采用一些变量,因为当我们重新启动应用程序时,它不会保留最后的值。

为此,您需要使用数据库,但这需要大量编码。所以最好使用 NSUserDefaults 来存储系统首选项。

Write this in your viewWillAppear:

if([[NSUserDefaults standardUserDefaults]valueforKey:@"key"]==nil)
{
    NSUserDefaults *default = [NSUserDefaults standardUserDefaults];

    [default setValue:@"1" forKey:@"key"];
    [default synchronize];
}
else
{
    NSLog(@"Once you make successful login this value wont change till you make logout");
}

& now just change the value in NSUserDefaults while doing logout.


NSLog(@"%@",[[NSUserDefaults standardUserDefaults] valueForkey:@"key"]); // way to access this system dictionary.

要进一步引用 Google 的 NSUserDefaults 教程

希望这能解决你的一些问题。 :)

关于objective-c - 仅在第二次加载 View 时运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6318879/

相关文章:

iphone - 子类化 MKAnnotationView 并重写 setDragState

objective-c - '{' token 之前的预期表达式

objective-c - 有一半的 UILabel 文本加粗,一半没有?

ios - 为许多图像设置动画时出现内存问题

objective-c - 类型类数组的问题

ios - UIGraphicsSetPDFContextURLForRect 不会在 Core Graphics PDF 上创建可点击区域

ios - UILocalNotification 在后台 10 分钟后不提示

ios - 通过 Swift 中的标签访问 UITableViewCell 内的不同 View

ios - 当我使用委托(delegate)将值传递给另一个 ViewController 时,我发现委托(delegate)什么都不做

ios - NSInvalidUnarchiveOperationException 仅在 iOS 扩展中引发,而不是在主应用程序中引发