简体   繁体   English

在ios中仅显示一次Toast或Alert或Popup视图?

[英]Show the toast or alert or popup view only once in ios?

I have one sample app. 我有一个示例应用程序。 The application contain toast when I login the screen going to home page view load toast appear perfectly my problem is the toast show only once at homepage again comes to the homepage toast does not needed? 当我登录进入首页视图的屏幕时,该应用程序包含吐司。完美地显示吐司我的问题是吐司仅在首页一次显示一次,就不需要吐司吗? But when I login again I need to show the toast. 但是,当我再次登录时,我需要展示吐司。 How can I do this. 我怎样才能做到这一点。 Any one give the solution. 任何人都可以提供解决方案。

The toast is declared on viewDidLoad : 吐司在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];
}

You can achieve this by saving your login state to NSUserDefaults. 您可以通过将登录状态保存为NSUserDefaults来实现。 You can achieve same by using following steps. 您可以通过执行以下步骤来实现。

  1. Save bool to indicate user has logged in or not 保存布尔值以指示用户是否已登录

     [[NSUserDefaults standardUserDefaults] setBool:FALSE forKey:@"LoggedIn"]; 
  2. Check whether user has logged in previously or login first time and display toast accordingly. 检查用户之前是否已登录或第一次登录并相应地显示吐司。

     if([[NSUserDefaults standardUserDefaults] boolForKey:@"LoggedIn"] == FALSE) { [[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"LoggedIn"]; //show toast } else { //hide code for previously logged in user } 
  3. Clear NSUserDefault value or you can even reset it to false on logout. 清除NSUserDefault值,或者您甚至可以在注销时将其重置为false。

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

Store toast shown status as BOOL value in your NSUserDefaults . 将显示的吐司状态作为BOOL值存储在NSUserDefaults Check the value of that variable before showing the popup. 在显示弹出窗口之前,请检查该变量的值。

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

During Logout Or in didfinishlaunching 注销期间或didfinishlaunching

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

use this three line simple code 使用此三行简单代码

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

尝试使用主线程在3秒后切换用户按钮,以显示Toast。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM