

プログラム歴は長いですが、XCode初心者です。  
開発環境はXCode8.1 Swift3を使用しています。  
Storyboardになるべく依存しない環境を勉強し始めたところです。

２つのUIViewController（画面Ａ，Ｂといいます）があって、それぞれに遷移ボタンを実装し、それが押されると、相手方の画面に遷移するという単純な処理で躓いています。

困っている問題は、２枚目の画面Ｂで、遷移ボタン以外の領域をクリックしても、反対の画面Ａに遷移する点です。

解決しようと検索して下記のリンクを見つけて実行してみましたが、同じ問題が発生してしまいます。  
<http://docs.fabo.io/swift/uikit/015_uiviewcontroller.html>  
このコードですと、  
画面Ａ→Ｂで、partialCurl  
画面Ｂ→Ａで、FlipHorizontal  
のエフェクトがかかるものと理解しています。ボタンを押したときはその通りの動作をします。  
画面Ｂで、
ボタン以外の領域（なぜか画面上方の領域）をクリックすると、「partialCurlの逆」のエフェクトで画面Ａに遷移しており、onClickMyButtonが呼び出されていないことまでは理解しているつもりです。

これは何が起きているのでしょうか？

// 追記です。  
当方の手順ですが、  
(1) File- New -ProjectでSingle View Applicationを作成  
(2) SecondViewController.swiftを作成して、リンク先のコードをコピー。  
(3) Swift3でエラーが消えるように修正したコードが以下の通りです。  
(4) ViewController.swiftについても、リンク先のコードをコピーして、同じような修正を行いました。  
コードの修正で何か間違いを犯していますでしょうか？

当方の環境では、シミュレータ上のiOSデバイス（iphone7など）で現象を確認しています。

[code]

    import UIKit
    
    class SecondViewController: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            // 背景色を設定.
            self.view.backgroundColor = UIColor.blue
    
            // ボタンを作成.
            let backButton: UIButton = UIButton(frame: CGRect(x: 0,y: 0, width: 120, height: 50))
            backButton.backgroundColor = UIColor.red
            backButton.layer.masksToBounds = true
            backButton.setTitle("Back", for: .normal)
            backButton.layer.cornerRadius = 20.0
            backButton.layer.position = CGPoint(x: self.view.bounds.width/2 , y:self.view.bounds.height-50)
            backButton.addTarget(self, action: #selector(onClickMyButton(sender:)), for: .touchUpInside)
    
            self.view.addSubview(backButton);
        }
    
        /*
         ボタンイベント.
         */
        internal func onClickMyButton(sender: UIButton){
    
            // 遷移するViewを定義.
            let myViewController: UIViewController = ViewController()
    
            // アニメーションを設定.
            myViewController.modalTransitionStyle = UIModalTransitionStyle.flipHorizontal
    
            // Viewの移動.
            self.present(myViewController, animated: true, completion: nil)
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    }
    
[/code]


CC BY-SA 3.0
2016-12-13T01:03:47.610
31106
2016-12-13T06:25:22.630
2016-12-13T06:25:22.630
3054
19892
question
swift ios xcode
意図しない画面遷移？