#ios #button
#iOS #кнопка
Вопрос:
Если я нажал кнопку действия входа
- (IBAction)login button:(id)sender
Я хотел бы перейти в webview без использования инициируемых переходов.
Потому что у меня есть два веб-просмотра.Если я нажал кнопку входа в систему, я хотел бы войти в webview, иначе я хотел бы перейти в home webview. Это зависит от одного нажатия кнопки.
Я использовал протокол делегирования и создал метод двух экземпляров, а затем я хотел бы вызвать метод с помощью [self method name].delegate
нормально, но действие кнопки входа не перешло в webview.
Как я могу это сделать?
фрагмент кода в viewcontroller.m
- (void)viewDidLoad {
[super viewDidLoad];
}
-(void)loginCompleted{
NSString *fullURL = @"http://www.example.com/login";
NSURL *url = [NSURL URLWithString:fullURL];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[homeWebView loadRequest:requestObj];
}
-(void)homeCompleted{
NSString *fullURL = @"http://www.example.com/home";
NSURL *url = [NSURL URLWithString:fullURL];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[homeWebView loadRequest:requestObj];
}
- (IBAction)loginEvent:(id)sender {
if ([sender isEqual:loginbtn]) {
[self loginCompleted];
NSLog(@"Button pressed");
} else {
NSLog(@"Button pressed2"); }
}
Комментарии:
1. Что вы подразумеваете под «у меня есть два веб-просмотра»? Вы пытаетесь сказать, что ваш
WebView
может загружать два запроса, и вы хотите что-то сделать на основе запроса, когда он будет завершен?2. что такое homeWebView, добавляется ли оно в self.view в качестве подвида, и если вы нажимаете на кнопку входа, отправитель всегда равен кнопке входа.
Ответ №1:
Где ваш loginbtn? Как вы это настроили?
установите его тег
loginbtn.tag = 1
В loginEvent сравните тег следующим образом
if (sender.tag == 1) {
[self loginCompleted];
NSLog(@"Button pressed");
} else {
NSLog(@"Button pressed2");
}
Ответ №2:
Вы можете выбирать и отменять выбор своей кнопки в зависимости от того, какое действие вы хотите запустить: loginbtn.isSelected=true
. И затем:
- (IBAction)loginEvent:(id)sender {
if ([sender isSelected]) {
[self loginCompleted];
NSLog(@"Button pressed");
} else {
NSLog(@"Button pressed2");
}
}
(Я пишу в Swift, поэтому это может быть написано немного по-другому)
Ответ №3:
Что вы говорите: «Если бы я нажал кнопку входа в систему, я хотел бы перейти в веб-просмотр входа, иначе я хотел бы перейти в домашний веб-просмотр.Это зависит от одного нажатия кнопки.’ приводит меня в замешательство.Каковы «другие случаи»?
Я гость, вы надеетесь сначала загрузить домашнюю страницу, если пользователь нажмет кнопку входа, он перейдет на страницу входа.
Если это верно, вам следует добавить requestObj
в свойство контроллера просмотра, отменить запрос, если необходимо, когда пользователь нажимает кнопку входа.
Вы говорите, что у вас есть два веб-просмотра, но вы загружаете запрос на вход в метод homeWebView
see loginCompleted