カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

前の画面に戻る unwind segue

複数のシーンを作成し、移動するアプリを制作する際、Androidのように戻るボタンがありませんので、その辺もきちんと実装しておく必要があります。
NavigationControllerを使えば簡単なのですが、今日はそれを使わない場合の方法をご紹介します。

遷移元のViewControllerに以下のコードを追加します。

@IBAction func unwindMe(segue: UIStoryBoardSegue) {
}

中身は何もなくて構いません。

次に遷移先のViewControllerに戻るボタンを配置します。
配置したボタンをControlを押しながらExitに結び付けます。

これだけで遷移元のViewControllerに戻ることができます。

また、コードで実行したい時は、ドキュメントアウトラインでExitの下に追加されたUnwind segue…を選択し、Identifierを設定します。

ここでは「backToMain」とします。

後は以下のコードを実行します。

performSegue(withIdentifier: "backToMain", sender: self)

ちなみに、最初のコードを以下のようにすれば、どの遷移先から戻ってきたかによって処理を分岐できるようです。

@IBAction func unwindMe(segue: UIStoryBoardSegue) {
    if segue.identifier == "backToMain" {
        //....何らかの処理
    }
}

Xcode: 8.3.1
Swift: 3.1
OS: Sierra 10.12

6,989 views

iOSでデータベースRealmを使う

iOSアプリでデータベースを使ってみたいと思います。
色々あるようですが、今回は「Realm(レルム)」を選定しました。
Realm公式サイト:https://realm.io/jp/

まずはインストールから始めてみましょう。
realmのドキュメントを参考に進めます。

CocoaPodsのSpecリポジトリ更新

ターミナルを開き、コマンドを実行

pod repo update

Realmのインストール

インストールしようとしているプロジェクトのディレクトリに移動します。

cd <path-to-project>

続きを読む…»

1,617 views

GoogleMap 表示範囲内のみマーカー表示

GoogleMap上にたくさんのマーカーを描画したい場合、マーカーが多過ぎて処理が重くなるのを防ぎたいので、
予め地図の表示範囲内のみ、マーカーを描画するようにしてみたいと思います。

まずはイベントを受け取り、処理できるようデリゲート[GMSMapViewDelegate]を追加します。

class SampleViewController: UIViewController, GMSMapViewDelegate {

GoogleMapオブジェクトにデリゲートを設定します。

googleMap.delegate = self

マーカーを追加する際、後から表示/非表示を変更したいので、配列のマーカーオブジェクトを宣言しておきます。

var markers : [GMSMarker] = []

マーカーを追加したときに先ほどの配列に追加します。

let marker: ...
markers.append(marker)

続きを読む…»

4,262 views

Macでのスクリーンショット

普段はWindowsを使っているので、Macでのスクリーンショットを撮る方法の覚書です。

画面全体のスクリーンショットを撮る
shift + command + 3

画面の一部分を選択してスクリーンショット
shift + command + 4
カーソルが十字になるので、保存したい範囲を選択
取り消しはesc

ウィンドウのスクリーンショットを撮る
shift + command + 4
その後、スペース
保存したいウィンドウをクリック

シャドウ無しのスクリーンショットが良ければ、
optionを押しながらウィンドウをクリック

1,095 views

GoogleMapに現在地を表示

Info.plistに位置情報の利用を追加します。
GoogleMapに現在地を表示するだけなら、CoreLocationは必要ないようです。

Privacy - Location When In Use Usage Description

Valueには「現在地の情報を利用します」等としておきます。

GoogleMapの表示方法については[iOSアプリでGoogleMapを使う]をご覧ください。

位置情報を利用して現在地を表示する

googleMap.isMyLocationEnabled = true

現在地ボタンを表示する

googleMap.settings.myLocationButton = true

Xcode: 8.2.1
Swift: 3.1
OS: Sierra 10.12

3,158 views