swiftでアプリ開発の際、ViewController.swift内のviewDidLoad()の中でmain.storyboardのボタンなどを追加しました。
そのとき、main.storyboardにボタンなどのUIをつけてViewController.swiftの関数と紐づけるような操作は可能でしょうか?
下のコードは以下のurlを参考にさせていただきました。
http://ja.stackoverflow.com/questions/10931/swift%E3%81%A7%E9%9B%BB%E5%8D%93%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA
lang
1 2import UIKit 3import Foundation 4 5class ViewController: UIViewController { 6 7 //計算結果を表示するラベルを宣言 8 var resultLabel = UILabel() 9 let xButtonCount = 4 //一行に配置するボタンの数 10 let yButtonCount = 4 11 //画面の横幅サイズを格納するメンバ変数 12 let screenWidth:Double = Double(UIScreen.mainScreen().bounds.size.width) 13 //画面の縦 14 let screenHeight:Double = Double(UIScreen.mainScreen().bounds.size.height) 15 //ボタン間の余白 16 let buttonMargin = 10.0 17 //計算結果表示 18 var resultArea = 0.0 19 20 //二つの項のうち左の項が入力済みかどうかを見る 21 var isLeftNotEmpty: Bool = false 22 23 24 25 26 override func viewDidLoad() { 27 super.viewDidLoad() 28 //画面全体の縦幅に応じて計算結果表示エリアの縦幅を決定 29 switch screenHeight{ 30 case 480: 31 resultArea = 200.0 32 case 568: 33 resultArea = 250.0 34 case 667: 35 resultArea = 300.0 36 case 736: 37 resultArea = 350.0 38 default: 39 resultArea = 0.0 40 } 41 //計算結果のラベル 42 resultLabel.frame = CGRect(x:10, y:30, width:screenWidth-20, height:resultArea-30) 43 44 let buttonLabels = [ 45 "7","8","9","×", 46 "4","5","6","-", 47 "1","2","3","+", 48 "0","C","÷","=" 49 ] 50 51 for var y=0; y<yButtonCount; y++ { 52 for var x=0; x<xButtonCount; x++ { 53 //計算機のボタン作成 54 var button = UIButton() 55 //ボタンの横幅 56 var buttonWidth = (screenWidth - (buttonMargin * (Double(xButtonCount)+1)))/Double(xButtonCount) 57 //ボタンの縦幅 58 var buttonHeight = (screenHeight - resultArea - ((buttonMargin*Double(yButtonCount)+1)))/Double(yButtonCount) 59 //ボタンのx座標 60 var buttonPositionX = (screenWidth - buttonMargin) / Double(xButtonCount) * Double(x) + buttonMargin 61 //ボタンのy座標 62 var buttonPositionY = (screenHeight - resultArea - buttonMargin) / Double(yButtonCount) * Double(y) + buttonMargin + resultArea 63 //ボタンの配置、サイズ 64 button.frame = CGRect(x:buttonPositionX, y:buttonPositionY, width:buttonWidth, height:buttonHeight) 65 //背景 66 button.backgroundColor = UIColor.greenColor() 67 //ボタンのラベルタイトル 68 var buttonNumber = y * xButtonCount + x 69 //ボタンのラベルタイトルを取り出すインデックス番号 70 button.setTitle(buttonLabels[buttonNumber],forState: UIControlState.Normal) 71 //ボタンタップ時のアクション 72 button.addTarget(self, action: "buttonTapped:", forControlEvents: UIControlEvents.TouchUpInside) 73 //ボタン配置 74 self.view.addSubview(button) 75 } 76 } 77 78 //計算結果ラベル設定する 79 resultLabel.backgroundColor = UIColor.grayColor() 80 resultLabel.font = UIFont(name:"Arial", size: 50) 81 resultLabel.textAlignment = NSTextAlignment.Right 82 resultLabel.numberOfLines = 4 83 resultLabel.text = "0" 84 85 //計算結果ラベルをviewcontrollerクラスのviewに設置 86 self.view.addSubview(resultLabel) 87 } 88 89 override func didReceiveMemoryWarning() { 90 super.didReceiveMemoryWarning() 91 // Dispose of any resources that can be recreated. 92 } 93 94 //ボタンタップメソッド 95 func buttonTapped(sender:UIButton){ 96 var tappedButtonTitle:String = sender.titleLabel!.text! 97 println("\(tappedButtonTitle)ボタンがタップされました") 98 99 } 100 101 102 103}
すみません。
説明だけではどういった状況で、どのようにしたいのか分かりませんでした。
ViewController.swiftをのコードを貼り付けてもらえばと助かります。