Как я могу дать внешнюю ссылку на UIButton? Возможно ли это?

У меня есть имя UIButton как "Купить сейчас". Если кто-либо коснется кнопки, внешняя ссылка должна открыться в браузере Safari. Как я могу это достичь?

Ответ 1

Это легко. Вы устанавливаете кнопки target и selector для кнопки, а затем внутри selector вы вызываете сафари, чтобы открыть ссылку.

Код для вызова Safari:

Objective-C

- (void)buttonPressed {
    [[UIApplication sharedApplication] 
        openURL:[NSURL URLWithString: @"https://www.google.co.uk"]];
}

Swift 2.x

UIApplication.sharedApplication().openURL(NSURL(string: "https://www.google.co.uk")!)

Swift 3.x

UIApplication.shared.openURL(URL(string: "https://www.google.co.uk")!)

Ответ 2

Создайте кнопку и дайте ей цель селектору, который открывает Safari со ссылкой.

Основной пример:

Сделать UIButton

UIButton *button = [[UIButton alloc] initWithFrame:...];
[button addTarget:self action:@selector(someMethod) forControlEvents:UIControlEventTouchUpInside];

Затем метод открытия URL

-(void)someMethod {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"http://www.google.ca"]];
}

Не забудьте указать правильную рамку и название кнопки и добавить ее в свой вид.

Ответ 3

- (IBAction)buyNowButtonPressed {
    NSString *s = [ NSString stringWithFormat:@"http://www.sample.com/buynowpage"];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:s]];
}

Ответ 4

openURL устарел из iOS 10 и вместо этого использует следующий код.

UIApplication *application = [UIApplication sharedApplication];
NSURL *url = [NSURL URLWithString:@"http://www.yourDomain.com"];
[application openURL:url options:@{} completionHandler:nil];