teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

修正

2016/08/27 07:01

投稿

_Kentarou
_Kentarou

スコア8490

answer CHANGED
@@ -30,4 +30,43 @@
30
30
  self.presentViewController(alertController, animated: true, completion: nil)
31
31
  }
32
32
 
33
- ```
33
+ ```
34
+
35
+ メソッドの中で他のメソッドを呼ぶには、呼び出す前にメソッドを定義していないとだめなので、先頭で定義して呼び出し時に`self`を付けないと以下のように使用できます。
36
+
37
+ ```swift
38
+ func jumpTourl(urlString: String){
39
+
40
+ func showAlert(message: String){
41
+ // >= ios8
42
+ let alertController = UIAlertController(title: "Error", message: message, preferredStyle: .Alert)
43
+ let defaultAction = UIAlertAction(title: "OK", style: .Default, handler: nil)
44
+ alertController.addAction(defaultAction)
45
+ self.presentViewController(alertController, animated: true, completion: nil)
46
+ }
47
+
48
+
49
+ if let url = NSURL(string: urlString){
50
+ let urlRequest = NSURLRequest(URL: url)
51
+ self.webView.loadRequest(urlRequest)
52
+ } else {
53
+ showAlert("Invalid URL")
54
+ }
55
+
56
+
57
+ var urlString = self.textField.text
58
+ urlString = urlString!.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
59
+ if urlString == "" {
60
+ // alert
61
+ showAlert("Please enter URL")
62
+ } else {
63
+ // jumpTourl
64
+ self.jumpTourl(urlString!)
65
+ self.setupButtonsEnabled()
66
+ }
67
+ self.textField.resignFirstResponder()
68
+ return true
69
+ }
70
+
71
+ ```
72
+