我的Classes VC
在顶部有一个不同日期的分段控件。当用户点击日期时,它会根据dtDate
加载内容并调用LoadClasses
方法。
现在我有另一个Search VC
,当点击搜索时,它会以string
传递给Classes VC
我正在使用NSDefault for key txtURLFromSearch
保存string
和在NSDefault for key txtURLFromSearch
Classes VC
之后,我将字符串等同于sURLFromSearch
,我希望将其保留在Classes VC
但是当用户关闭此VC时,我希望清除NSDefault
的字符串值以获取密钥txtURLFromSearch
我将使用sURLFromSearch进行一些检查,它会追加并加载sURL或只是默认的sURL。
我想要实现的目标:
当USER退出Classes VC
时如何清除NSDefault for key txtURLFromSearch
是否有更好的方法将数据从Search VC
推送到Classes VC
。该字符串将保留在Classes VC
,但当用户解除Classes VC
时,显示Classes VC
的所有字符串值?
@synthesize sURL;
@synthesize sURLFromSearch;
- (void)viewDidLoad
{
[super viewDidLoad];
dtDate = [[NSMutableArray alloc] init];
[self setupSegmentButtons];
NSDate *now = [NSDate date];
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd/MM/YYYY"];
sDtDate = [dateFormatter stringFromDate:now];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
sURLFromSearch = [defaults objectForKey:@"txtURLFromSearch"];
NSLog(@"=====%@******",sURLFromSearch);
[self LoadClasses];
}
-(void)viewWillAppear:(BOOL)animated {
//=== Is there something I need to do here?
}
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
//=== The following doesn't work, when I switch back to this View,
//=== It will set txtURLFromSearch to Empty String.
//NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//[defaults setObject:@"" forKey:@"txtURLFromSearch"];
//[defaults synchronize];
}
- (void)LoadClasses {
NSLog(@"======sURLFromSearch====%@**********", sURLFromSearch);
if ([sURLFromSearch length] !=0 ) {
//=====sURL 1=======
sURL = [sURL stringByAppendingString:sURLFromSearch];
NSLog(@"==== sURL1: %@ ", sURL);
} else {
//=====sURL 2=======
sURL
}
NSURL *url = [NSURL URLWithString:sURL];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
[webView loadRequest:urlRequest];
[webView setDelegate:(id<UIWebViewDelegate>)self];
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
[webView.scrollView addSubview:refreshControl];
}
- (void)handleRefresh:(UIRefreshControl *)refresh {
NSURL *url = [NSURL URLWithString:sURL];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
[webView loadRequest:urlRequest];
[refresh endRefreshing];
}
- (IBAction)btnSearch:(UIButton *)sender {
sURL = @"From Search, append to Classes sURL";
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:sURL forKey:@"txtURLFromSearch"];
[defaults synchronize];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UITabBarController *tabView = [storyboard instantiateViewControllerWithIdentifier:@"profileView"];
tabView.selectedIndex=1;
[self presentViewController:tabView animated:YES completion:nil];
Classes *vc = [[Classes alloc] init];
[vc fromSearch:sURL];
}