質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

解決済

swift Storyboardを使わないUITableViewページ遷移について

trox
trox

総合スコア37

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

1回答

0リアクション

1クリップ

3213閲覧

投稿2015/11/27 02:51

iOSアプリ制作にてStoryboardを使わずUITableViewのページ遷移について質問いたします。

現在のコードではどのテーブルを選択し遷移しても、遷移後ページに配列の最後の値が挿入されます。

AppDelegate.swift

swift

import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? var sendImage: UIImage? var sendLabel: String? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { let myFirstViewController: FirstViewController = FirstViewController() self.window = UIWindow(frame: UIScreen.mainScreen().bounds) self.window?.rootViewController = myFirstViewController self.window?.makeKeyAndVisible() return true } func applicationWillResignActive(application: UIApplication) { } func applicationDidEnterBackground(application: UIApplication) { } func applicationWillEnterForeground(application: UIApplication) { } func applicationDidBecomeActive(application: UIApplication) { } func applicationWillTerminate(application: UIApplication) { } }

FirstViewController.swift

swift

import UIKit class FirstViewController: UIViewController,UITableViewDataSource,UITableViewDelegate { private var myScrollView: UIScrollView! private let myItems: NSArray = ["test1", "test2", "test3"] private let myImages: NSArray = ["img1.jpg", "img2.jpg", "img3.jpg"] private var myTableView: UITableView! override func viewDidLoad() { super.viewDidLoad() // ScrollView myScrollView = UIScrollView() myScrollView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) let myImage = UIImage(named: "img8.jpg")! let myImageView = UIImageView() myImageView.image = myImage myImageView.contentMode = UIViewContentMode.ScaleAspectFill myImageView.frame = CGRectMake(0, 0, self.view.bounds.width, 200) myScrollView.addSubview(myImageView) myScrollView.contentSize = CGSizeMake(myImageView.frame.size.width, myImageView.frame.size.height) self.view.addSubview(myScrollView) // TableView let displayWidth: CGFloat = self.view.frame.width let displayHeight: CGFloat = self.view.frame.height myTableView = UITableView(frame: CGRect(x: 0, y: 200, width: displayWidth, height: displayHeight)) myTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "MyCell") myTableView.dataSource = self myTableView.delegate = self self.view.addSubview(myTableView) // Pageing let nextButton: UIButton = UIButton(frame: CGRectMake(0, 0, 120, 50)) nextButton.backgroundColor = UIColor.redColor() nextButton.layer.masksToBounds = true nextButton.setTitle("Next", forState: .Normal) nextButton.layer.cornerRadius = 20.0 nextButton.layer.position = CGPoint(x: self.view.bounds.width/2, y: 400) nextButton.addTarget(self, action: "onClickMyButton:", forControlEvents: .TouchUpInside) self.view.addSubview(nextButton) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { let mySubViewController: UIViewController = SubViewController() mySubViewController.modalTransitionStyle = UIModalTransitionStyle.PartialCurl self.presentViewController(mySubViewController, animated: true, completion: nil) } func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return myItems.count } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("MyCell", forIndexPath: indexPath) cell.textLabel!.text = "\(myItems[indexPath.row])" let image: UIImage! = UIImage(named: "\(myImages[indexPath.row])") cell.imageView!.image = image let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate appDelegate.sendImage = image appDelegate.sendLabel = "\(myItems[indexPath.row])" return cell } }

SubViewController.swift

swift

import UIKit class SubViewController: UIViewController { private var myImageView: UIImageView! override func viewDidLoad() { super.viewDidLoad() let backButton: UIButton = UIButton(frame: CGRectMake(0, 0, 120, 50)) backButton.backgroundColor = UIColor.greenColor() backButton.layer.masksToBounds = true backButton.setTitle("Back", forState: .Normal) backButton.layer.cornerRadius = 20.0 backButton.layer.position = CGPoint(x: self.view.bounds.width/2, y: 400) backButton.addTarget(self, action: "onClickMyButton:", forControlEvents: .TouchUpInside) self.view.addSubview(backButton) let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate // ImageView myImageView = UIImageView(frame: CGRectMake(0, 0, 200, 300)) let myImage = appDelegate.sendImage myImageView.image = myImage myImageView.contentMode = UIViewContentMode.ScaleAspectFill myImageView.layer.position = CGPoint(x: self.view.bounds.width/2, y: 200) self.view.addSubview(myImageView) let label: UILabel! = UILabel(frame: CGRectMake(0, 0, 200, 50)) label.text = appDelegate.sendLabel label.textColor = UIColor.whiteColor() label.layer.position = CGPoint(x: 200, y: 500) self.view.addSubview(label) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } // Button Event internal func onClickMyButton(sender: UIButton) { let myViewController: UIViewController = FirstViewController() myViewController.modalTransitionStyle = UIModalTransitionStyle.PartialCurl self.presentViewController(myViewController, animated: true, completion: nil) } }

ご教授いただけると助かります。どうぞよろしくお願い致します。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています