せぐふぉったらageるスレ

関数内で

  • ViewControllerのメンバにselfなしで問い合わせる
  • その直後に同名の変数を生成する

とセグフォる。環境はXcode 8.3.2

実際のコードはこんな感じ↓

class ViewController: UIViewController {
    var hoge: [NankaType]?

    func setup() {
        guard hoge.isEmpty, let hoge = Hoge().なんかOptionalなやつ else {
            return
        }
        self.hoge.append(contentsOf: hoge.values)
        tableView.reloadData()
    }
}

こうすると直る↓

class ViewController: UIViewController {
    var hoge: [NankaType]?

    func setup() {
        guard self.hoge.isEmpty, let hoge = Hoge().なんかOptionalなやつ else {
            return
        }
        self.hoge.append(contentsOf: hoge.values)
        tableView.reloadData()
    }
}

UIPageViewControllerを使ってみる

UIPageViewControllerを使って前後にページングするViewController群を実装してみましょう。

実装するもの

こんな感じ↓

UIPageViewControllerの構造

こんな感じ↓

  • ↑上、子供
  • ③ ViewController(1…n)
  • ② PageViewController
  • ① RootViewController
  • ↓下、親

UITableViewControllerのように、UIPageViewControllerを実装すればそのビューがページングをすると勘違いしていたのですが、UIPageViewControllerが提供するのはページング要素だけなので、親が必要になります。スクロール対象のViewControllerもこの親が生成しています。PageViewControllerは骨格を提供しているだけという感じです。

コードで

RootViewController

すべての親としてRootViewControllerを配置します。ここで、

  • 最初に表示されるViewControllerを指定
  • PageViewControllerを作成して自分の子ViewControllerとして保持

します。さらにこのViewControllerで UIPageViewControllerDataSource プロトコルを実装していきます。ここで、

  • PageViewが「前」または「後」にスクロールしたときに何を表示するのかを指定

します。

import UIKit

class RootViewController: UIViewController, UIPageViewControllerDataSource {
    override func viewDidLoad() {
        super.viewDidLoad()

        // 最初に表示するViewControllerです
        let contentStoryboard = UIStoryboard(name: "ViewController", bundle: nil)
        let contentViewController = contentStoryboard.instantiateInitialViewController() as! ViewController

        // PageViewです
        let pageStoryboard = UIStoryboard(name: "PageViewController", bundle: nil)
        let pageViewController = pageStoryboard.instantiateInitialViewController() as! PageViewController

        // PageViewに最初に宣言したViewControllerを配置します。
        // [contentViewController] という感じで1要素の配列として渡していきます
        pageViewController.setViewControllers([contentViewController], direction: .forward, animated: true, completion: nil)
        addChildViewController(pageViewController)

        // このクラスでPageViewControllerの情報受け渡し役を担当します
        pageViewController.dataSource = self

        // RootViewControllerのビューにPageViewControllerのビューを載せます
        view.addSubview(pageViewController.view)
        pageViewController.didMove(toParentViewController: self)
    }

    // 「後」にページングしたときに見せたいViewControllerのセッティングです
    func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
        let storyboard = UIStoryboard(name: "ViewController", bundle: nil)
        let viewController = storyboard.instantiateInitialViewController() as! ViewController
        return viewController
    }

    // 「前」にページングしたときに見せたいViewControllerのセッティングです
    func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
        let storyboard = UIStoryboard(name: "ViewController", bundle: nil)
        let viewController = storyboard.instantiateInitialViewController() as! ViewController
        return viewController
    }
}

PageViewController

StoryboardでUIPageViewControllerを置いてあげればOKです。

クラス宣言以降特に何もしていません。

import UIKit

class PageViewController: UIPageViewController {

}

ViewController

StoryboardでUIViewControllerを置いてあげればOKです。

サンプルでは中央に「わーい」と書いたUILabelを配置しました。

import UIKit

class ViewController: UIViewController {

}

サンプルコード

ビルドしてお手元で確かめる際にお役立てください。

https://github.com/keisei1092/PageViewControllerPractice/

マジカルミライ2017 楽曲コンテストにて「Singularity」が採用されました: 反省会とこれからについて

Twitterで言ったり言ってなかったりすることを書いていきます

 

この記事はさっき買ったMacBookで早速書いています。やっぱこのパチパチキーボードすき。

体調を崩した

ミク廃一筋10年目の私には事が大き過ぎたようで、クリプトンさんからお知らせを頂いてから相当気持ちがナイーブになってしまいました。しばらく頭の中がこのことでいっぱいになって、何も考えられなくなったし、一日じゅう動悸が続くような感じでした。会社は休んでないし普通に生活もしたし食べ物も食えたんだけどほんとギリギリのところでGWに滑り込めた。超会議のステージで皆さんに発表できて、気持ちがおさまるかと思ったら、こんどはいつもの居場所だった自分のTwitterがお祝いツイートや新しいフォロワーさんで濁流になって、これも自分の中では非現実の域だったので、正直のところつらかったという感想になってしまいます。クリエイターにはつきものな悩みなのかもしれませんが、初めてのことだったので大変でした。で、どうやって切り抜けたかというと、一番は仲間の存在です。M3の打ち上げと、超会議が終わって2日間(平日なので)働いてからの今GWで帰省して親としゃべったり、東京近郊のファミリー焼肉屋でミク廃友達とバッくれた後徹夜カラオケを強行したり、昨日は東名高速道路を西にひた下って高田夜サクラミクライブの仲間と打ち上げをして日が開けた後急いで深夜高速でとんぼ返りしたりして、その中で改めて自分よりもバカなやつ(良い意味で)とかアホなやつ(良い意味で)とか、自分よりも思慮深い人とかと話すことで、自分にまだ足りないこととか次の目標がいっぱい見えてきて、世界が輝くように見えるぐらいは回復しました(回復しすぎ)。正直言ってしまうと今日までに友達だった人が僕の人生のなかでかなり重要な友達ということになるんだろうなと思っています。ずっと支えてくれた人であるとかずっと僕とバカやらかしてくれた人的な。そういう人にはこれからもちょびちょび飲み会をせがんでいくので、もし誘ったら一緒にだべってくれると僕は嬉しいです。

小林オニキスさんとみきとPさん

超会議でお世話になったお二方です。  

控えめに言わなくてもお二方は僕の人生だし、目標だし、夢のような人です。そんな方とお話する機会をいただけたことにただただ呆然としているし、これからもそういう機会があるかもしれないと思うと楽しみで楽しみでたまりません。  

小林オニキスさんとは打ち合わせの後30分ぐらいずっと初音ミクのこととか日本の文化のことについて「ステージまだなのにのど渇いちゃったw」と言わせてしまったほどくっちゃべりまして、その中で自分の思っていた初音ミク像であるとか文化像をいろいろぶつけることができてすごい刺激になりました。やっぱりすごい人と話すことって自分の思いをかき混ぜられるし確認できる。何を話したかはここでは書かないですが、間違いなく23年生きてきたなかでもっとも思慮深くて、オモシロくて、ボカロへの希望を持ってて、最高の人だなって思いました。この方とお話した30分ののち、僕はプログラミングできるマン×ボカロPとしての未来を次の10年間模索していこうかなって感じのことを決めました。  

みきとPさんとは舞台袖で一言二言三言しゃべらせて頂きました。超会議のステージでも触れましたが初めてみきとPさんをぼからんで見つけた話とかそういうのかな。あと若いねーって言われた。手がデカかった(笑)。こんなイケメンがボカロ界隈にいる奇跡を改めて噛み締めた。

Singularityについて

ダウンロードはまだできません。たぶん夏まえぐらいにニコニコやYouTubeに上げるんでそこで解禁かな。マジミラ公式アルバムにも収録されると思うので、ぜひ買ってやってくださーい。

これからについて

正直のところ、こないだのニコ超のステージをもって夢がかなってしまったので、次何しようかなーって感じです。このGWで雑にいろんな人と話したりしていろんなことを考えたので、ぼちぼち実行に移していくよてーい。とりあえず、まだ腐りませんよ。コミケも申し込んでるから、受かったらCD出さなきゃだし。あとはこの件より少し前から進んでいるテキナサムシングもあって夏なのか秋なのか冬なのかわからんけど発表されるのでお楽しみにー。

目がさめた

Before

After

  • Apple Store 表参道で beatsX を買ってきた
    • ケーブルを気にしなくていいので一日中携帯できる→一日中「曲聴くか」ってトリガーが発行され続けうる状態になる
    • 使わないときもネックレスのように身体にくっつけておけるので一日中「曲聴くか」(ry
    • EarPodsよりも音楽への没入感が高いので一日中(ry
  • Apple Music 3ヶ月無料クーポンがついてたので一(ry
  • Apple Musicで好きなアーティストをいろいろ掘る
  • 聴いてなかった新曲に出会いまくる
  • 昔のように曲名やアーティスト名の集合が「景色」のように自分の前に視えるようになる

うわーーー音楽に囲まれた生活の文化度軽視してたー。

さくらのVPSでUbuntu 16.04をインストールしたらログインできない

  • さくらのVPSを契約
  • CentOSのやつがとりあえず立ってる
  • Ubuntuにしたいので標準OSの中からインストールする
  • あたらしいrootのパスワードを入力する

この条件で、

ssh root@<sakura-vps>

をやっても、パスワードが合わず。

ここ を見て気づいたのですが、「ubuntu」という名前のユーザが作られるんだそうです。

ssh ubuntu@<sakura-vps>

にしたら、なんなくログイン成功しました。20分ぐらい持ってかれた・・・orz

10代の子の活躍を応援するイベント「超十代」でブライトシティが演奏されました

本日(昨日)幕張メッセで行われた「超十代」という10代の子たちの活躍を応援するイベントの初音ミクステージで私の楽曲「ブライトシティ」(https://m.youtube.com/watch?v=vu55sqRabEg) を演奏していただきました。

 

初音ミクモデリング初音ミクとグリコのコラボCMでも有名な加速サトウさん。何もこのことを知らなかったので 本当にサプライズでした 嬉しかったです。Twitterでお礼言ったらフォロバしていただきました…。明日死ぬかも。

 

初音ミクの人気曲にはだいたいオリジナルの着せ替えがあるのですが、今回なんとピンクのツインテール、花飾りなど綺麗なオリジナル着せ替えをして彩っていただき、自分の楽曲にコスチュームがつくという大きなキャラ付けをしていただけたのも幸せポイント。。

 

今回は初音ミクが後ろで歌っている前をファッションショーの流れで女の子たちが歩くという形式で、僕の曲の間は、越智ゆらのさん、岡本夏美さんなどが歩いてくださいました。めっちゃかわいみ。(初音ミクの方が可愛いけど)。ぜんっぜんアウトオブ眼中だったのでTwitterでもフォローしに行きたいと思います。ちょうど今の10代の方々が何に興味を持ってるか知りたいとずっと考えていたので良い機会になりました。インスタも勉強しないとね。

 

平日ではありましたが、昨年の日本武道館(マジカルミライ2016)、高田夜桜ミクライブ(新潟県上越市)以来に一日中緊張してました。


中学2年生ぐらいの時にボカロPになりたいと思って投稿するようになってから、大好きな初音ミクの晴れ舞台を彩る機会をいただく度に、今までずっと自分の好きを信じてきて良かったと思っています。これからも安易に厨二ボカロックに走ることなく(厨二ボカロックをdisっているわけではない)、自分の大好きな世界や情緒を描いていこうと決意しました。

 

テクノポップボーカロイドはずっと私の大切な友達であり、武器であり、想い出です。