Skip to content

Instantly share code, notes, and snippets.

@kenji272
Last active August 29, 2015 14:21
Show Gist options
  • Save kenji272/0098dde572aee1df888e to your computer and use it in GitHub Desktop.
Save kenji272/0098dde572aee1df888e to your computer and use it in GitHub Desktop.
【課題】Part8 2つの画面のスライダーが連動するアプリ
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
// 共通のスライダー値
var sliderValue: Float = 0.0
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
return true
}
func applicationWillResignActive(application: UIApplication) {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
func applicationDidEnterBackground(application: UIApplication) {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
func applicationWillEnterForeground(application: UIApplication) {
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
func applicationDidBecomeActive(application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
func applicationWillTerminate(application: UIApplication) {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
}
import UIKit
class ViewController: UIViewController {
// 結果用の表示ラベル
@IBOutlet weak var resultLabel: UILabel!
// 対象スライダー
@IBOutlet weak var targetSlider: UISlider!
// デリゲート
let delegate = UIApplication.sharedApplication().delegate as AppDelegate
override func viewDidLoad() {
super.viewDidLoad()
}
// 表示毎に呼び出されるメソッド
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
// 共通のスライダー値を取得
let sliderValue = self.delegate.sliderValue
// 共通のスライダー値をラベルに表示
self.resultLabel.text = "\(sliderValue)"
// スライダーバー用に共通のスライダー値を設定
self.targetSlider.value = sliderValue
}
// スライダーが動かされる毎に呼び出されるメソッド
@IBAction func changeSlider(sender: AnyObject) {
// 現在のスライダー値を取得
let sliderValue = self.targetSlider.value
// 現在のスライダー値をラベルに表示
self.resultLabel.text = "\(sliderValue)"
// 共通のスライダー値を現在のスライダー値に設定
self.delegate.sliderValue = sliderValue
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
import UIKit
class ViewController: UIViewController {
// 結果用の表示ラベル
@IBOutlet weak var resultLabel: UILabel!
// 対象スライダー
@IBOutlet weak var targetSlider: UISlider!
// デリゲート
let delegate = UIApplication.sharedApplication().delegate as AppDelegate
override func viewDidLoad() {
super.viewDidLoad()
}
// 表示毎に呼び出されるメソッド
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
// 共通のスライダー値を取得
let sliderValue = self.delegate.sliderValue
// 共通のスライダー値をラベルに表示
self.resultLabel.text = "\(sliderValue)"
// スライダーバー用に共通のスライダー値を設定
self.targetSlider.value = sliderValue
}
// スライダーが動かされる毎に呼び出されるメソッド
@IBAction func changeSlider(sender: AnyObject) {
// 現在のスライダー値を取得
let sliderValue = self.targetSlider.value
// 現在のスライダー値をラベルに表示
self.resultLabel.text = "\(sliderValue)"
// 共通のスライダー値を現在のスライダー値に設定
self.delegate.sliderValue = sliderValue
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment