Я пытаюсь открыть специальный viewController, если это первый пользователь в моем приложении. Раньше я работал над этим в других ситуациях, но по какой-то причине он сейчас не работает. Я пробовал два разных подхода, и никто не работает. Первое, что я пробовал, это проверить и сделать это прямо из appDelegate ... Затем я попытался проверить, был ли это первый раз из метода viewDidLoad с контроллерами корневого представления, и если он в первый раз вызывает вызов, чтобы открыть специальную страницу регистрации , Niether работает, и я понятия не имею, почему ..... Вот некоторые из кода, который я использую:Программный вызов segue не работает
Это внутри rootviewcontroller. Когда я это делаю, он печатает «Main is First Time» в журнале, поэтому я знаю, что он делает это там. Я проверил на SEGUE в раскадровке и назван правильно и идет и из правильных мест ....
- (void)viewDidLoad
{
[super viewDidLoad];
appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
if([appDelegate firstTime])
{
[self performSegueWithIdentifier:@"mToRegister" sender:self];
NSLog(@"Main is First time");
}
// Do any additional setup after loading the view.
}
Внутри AppDelegate:
NSUserDefaults * standardUserDefaults = [NSUserDefaults standardUserDefaults];
BOOL естьused = [стандартUserDefaults boolForKey: @ "hasused"];
if(haveused){
//NOT THEIR FIRST TIME
//Handle scenario
firstTime = NO;
NSString* guid = [[NSMutableString alloc]initWithString:[self getMacAddress]];
//interest = [appDelegate interest];
NSString *splitter = [[NSString alloc]initWithString:@"&"];
NSMutableString *post = [[NSMutableString alloc]initWithString: @"user_read=1&guid="];
[post appendString:guid];
NSLog(@"String for Post is %@", post);
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setValue:@"Basic ==" forHTTPHeaderField:@"Authorization"];
[request setURL:[NSURL URLWithString:@"http://something.com/app/usercrud.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
theConnection = [[NSURLConnection alloc]initWithRequest:request delegate:self];
}
else {
NSLog(@"This is the First time");
firstTime = YES;
//THEIR FIRST TIME
//Handle scenario
// UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone"
// bundle: nil];
//
// UIViewController *controller = (UIViewController*)[mainStoryboard
// instantiateViewControllerWithIdentifier: @"register"];
// UIViewController *root = (UIViewController *)self.window.rootViewController;
// [root presentModalViewController:controller animated:YES];
[self.window.rootViewController performSegueWithIdentifier:@"mToRegister" sender:self];
}
Любые идеи, почему это не сработает? Если кто-нибудь не знает лучшего способа справиться с этой ситуацией?
Я проверил, и nsdefaults работает нормально ... Я отправлю часть IF, хотя – Rmyers
huh? ваша проблема решена или нет? – Saad
Нет ... пользовательские настройки по умолчанию работают так, как должны. Он отлично показывает, что это первый раз или нет, я просто не могу загружать другую страницу, кроме контроллера корневого представления, если это первый раз ... То, что моя проблема – Rmyers