My 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];
}
Из поиска VC, где я передаю строку.
- (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];
}