Я разрабатываю приложение, которое требует, чтобы пользователи выбирали один вариант из списка табличного представления. Это похоже на мелодию звонка в настройках iPhone. Я прикрепил экранную иллюстрацию того, что именно я пытаюсь выполнить.
Теперь я хочу, чтобы этот параметр был выбран для отправки в качестве значения для моего PHP- HTTPMethod
с помощью HTTPMethod
. Это тип запроса, который я использую, я думаю, это просто вопрос хранения данных в переменной.
Демо-запрос HTTP
let requestURL = NSURL(string: "http://example.com/script.php") let request = NSMutableURLRequest(URL: requestURL!) request.HTTPMethod = "POST"
Иллюстрация:
Я понимаю, что это новичок, но я не нашел учебника, который делает это быстро.
Все это можно сделать с помощью segue
show segue
unwind segue
в режим unwind segue
чтобы вернуться назад. И используйте разматывать segue для передачи данных назад. Это делается с помощью навигационного контроллера и UITableView.
Верхняя панель с двумя кнопками задана из-за контроллера навигации.
В контроллере навигации сгруппированный UITableView используется с заголовком «предупреждающие сигналы», а ячейки – это имя тонов.
Это видеоурок, в котором используются как навигационный контроллер, так и UITableView . Также этот урок быстро. https://itunesu.itunes.apple.com/WebObjects/LZDirectory.woa/ra/directory/courses/961180099/feed
Я записал примеры кодов. Проверь это.
Если у вас есть вопросы, спросите меня, когда захотите.
MainViewController
class MainViewController: UIViewController, ListViewControllerProtocol { @IBOutlet weak var button:UIButton? override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } func toList() { var listViewController = ListViewController(nibName: "ListViewController", bundle: nil) listViewController.delegate = self self.pushViewController(listViewController, animated: true) } @IBAction func buttonClicked(sender: UIButton) { self.toList() } func onSelectObj(obj:NSDictionary) { // set data to button } }
ListViewController
class ListViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { @IBOutlet weak var tableView:UITableView? var delegate:ListViewControllerProtocol? var identifier = "ListViewController" var data = [] override func viewDidLoad() { super.viewDidLoad() self.tableView?.registerClass(UITableViewCell.self, forCellReuseIdentifier: identifier) self.updateData() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } // MARK: UITableViewDataSource func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return data.count } func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { return 37 } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier(identifier, forIndexPath: indexPath) as! UITableViewCell var row = UInt(indexPath.row) var obj = self.data[0] as! NSDictionary cell.textLabel?.text = obj["name"] return cell; } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { tableView.deselectRowAtIndexPath(indexPath, animated: true) var obj = self.data[0] as! NSDictionary self.selectObj(obj) } private func selectObj(obj: NSDictionary) { self.delegate?.onSelectObj(obj) self.navigationController?.popViewControllerAnimated(true) } private func updateData() { // Code for getting data self.data = someDeserializedData self.tableView!.reloadData() // reload! } } protocol ListViewControllerProtocol { func onSelectObj(obj:NSDictionary) }