在iOS中仅显示一次吐司或警报或弹出视图



我有一个示例应用程序。当我登录屏幕上的屏幕时,该应用程序包含吐司,而到主页视图负载吐司看起来很完美,我的问题是在主页上仅在主页吐司再次出现烤面包显示吗?但是当我再次登录时,我需要显示吐司。我怎样才能做到这一点。任何人提供解决方案。

烤面包在viewDidLoad上声明:

Reachability *reachability = [Reachability reachabilityForInternetConnection];
[reachability startNotifier];
NetworkStatus status = [reachability currentReachabilityStatus];
if(status == NotReachable)
{
    NSLog(@"No Internet.");
}
else if (status == ReachableViaWiFi)
{
    wifiImage.image = [UIImage imageNamed: @"wifi_green.png"];
    [self.view makeToast:@"Wifi Is Connected" duration:3.0 position:CSToastPositionBottom];
}
else if (status == ReachableViaWWAN)
{
    ethernetImage.image = [UIImage imageNamed: @"ethernet_green.png"];
    [self.view makeToast:@"Ethernet Is Connected" duration:3.0 position:CSToastPositionBottom];
}

您可以通过将登录状态保存到nsuserdefaults来实现这一目标。您可以使用以下步骤来实现同样的方法。

  1. 保存布尔以表明用户已登录或不登录

    [[NSUserDefaults standardUserDefaults] setBool:FALSE forKey:@"LoggedIn"];
    
  2. 检查用户是以前登录还是第一次登录并相应地显示吐司。

    if([[NSUserDefaults standardUserDefaults] boolForKey:@"LoggedIn"] == FALSE)
    {
      [[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"LoggedIn"];
      //show toast
    }
    else
    {
     //hide code for previously logged in user
    }
    
  3. 清除nsuserdefault值,也可以将其重置为false。

    [[NSUserDefaults standardUserDefaults] setBool:FALSE forKey:@"LoggedIn"]; 
    

存储吐司在您的 NSUserDefaults中显示为bool值。在显示弹出窗口之前,请检查该变量的值。

if([[NSUserDefaults standardUserDefaults] boolForKey:@"ToastShown"] == FALSE)
 {
      [[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"ToastShown"];
     // add your code
}

在注销期间或在didfinishlaunching

  [[NSUserDefaults standardUserDefaults] setBool:FALSE forKey:@"ToastShown"];

使用这三行简单代码

  if([[NSUserDefaults standardUserDefaults] boolForKey:@"toast"] == FALSE)
 {
  [[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"toast"];
  [[NSUserDefaults standardUserDefaults] synchronize];
  //Toast code will go here...
 }

尝试使用主线程在3秒钟后切换Uibutton的用户交互,以显示吐司。

最新更新