Почему не вступает в силу подтолкнув, когда нажимает венчурную капитал сразу после представления венчурного капитала?IOS

Программируем под IOS
Ответить
Anonymous
 Почему не вступает в силу подтолкнув, когда нажимает венчурную капитал сразу после представления венчурного капитала?

Сообщение Anonymous »

Я писал несколько демонстраций, чтобы проверить логику времени выполнения, и я случайно обнаружил эту проблему. Я не смог найти ответ на основных форумах, и при этом я не получил результат, спросил ИИ, поэтому я здесь, чтобы обратиться за помощью. < /P>

Код: Выделить всё

// The binding logic of the button
(void)jumpToSecondViewController {
NSLog(@"content of the navigation stack (before):%@",self.navigationController.viewControllers);

SecondViewController *secondVC = [[SecondViewController alloc] init];
secondVC.receivedMessage = @"Hello World";

UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"My Alert" message:@"This is an alert." preferredStyle:UIAlertControllerStyleActionSheet];

UIAlertAction* defaultAction1 = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction action) {
//[self.navigationController pushViewController:secondVC animated:YES];
NSLog(@"ok");
}];

UIAlertAction defaultAction2 = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
NSLog(@"no");
}];

[alert addAction:defaultAction1];
[alert addAction:defaultAction2];

[self presentViewController:alert animated:NO completion:nil];
[self.navigationController pushViewController:secondVC animated:NO];

NSLog(@"content of the navigation stack (after):%@", self.navigationController.viewControllers);

NSLog(@"here");
}
Логика для навигации Push была первоначально связана с UiAlertAction , но я не понимаю, почему, когда она помещена в мою текущую позицию, программа работает нормально (она может печатать «Здесь»), но операция на навигационном управлении не работает. ViewController , он будет работать:

Код: Выделить всё

// The binding logic of the button
(void)jumpToSecondViewController {
NSLog(@"content of the navigation stack (before):%@", self.navigationController.viewControllers);

SecondViewController *secondVC = [[SecondViewController alloc] init];
secondVC.receivedMessage = @"Hello World";
[self.navigationController pushViewController:secondVC animated:NO];

UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"My Alert" message:@"This is an alert." preferredStyle:UIAlertControllerStyleActionSheet];

UIAlertAction* defaultAction1 = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction action) {
//[self.navigationController pushViewController:secondVC animated:YES];
NSLog(@"ok");
}];

UIAlertAction defaultAction2 = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
NSLog(@"no");
}];

[alert addAction:defaultAction1];
[alert addAction:defaultAction2];

[self presentViewController:alert animated:NO completion:nil];
//[self.navigationController pushViewController:secondVC animated:NO];
NSLog(@"content of the navigation stack (after):%@",self.navigationController.viewControllers);
NSLog(@"here");
}
< /code>
После нажатия сначала представленное предупреждение появится нормально. < /p>
// The binding logic of the button
(void)jumpToSecondViewController {
NSLog(@"content of the navigation stack (before):%@",self.navigationController.viewControllers);
/// ......
NSLog(@"content of the navigation stack (after):%@",self.navigationController.viewControllers);
NSLog(@"here");
}
Я напечатал информацию о стеке в NavigationController до и после операции, и обнаружил, что при представлении сначала, а затем нажатие, нажатый контент не добавляется в стек. Я не совсем уверен, в какой области знаний мне нужно узнать, или о какой внутренней логике это вызывает.

Подробнее здесь: https://stackoverflow.com/questions/797 ... mmediately
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»