У меня есть вопрос относительно проекта Swift. У меня есть TableViewController
с несколькими ячейками, и когда я нажимаю на них, я перехожу к ViewController
, где данные передаются от tableViewController
.Перейти к следующей ячейке таблицы с viewcontroller
Я хочу реализовать кнопку в ViewController
, которая позволяет мне отображать ViewController
с содержимым «следующей ячейки» от контроллера табличного представления. Например, я нажал на вторую ячейку контроллера табличного представления, поэтому перехожу к ViewController
, который отображает данные, соответствующие этой ячейке, а затем, когда я нажимаю на эту «следующую» кнопку в viewController
, я хочу отображать содержимое 3-й ячейки контроллера таблицы. Как мне это сделать чистым способом?
Вот код, я использую, чтобы передать данные из tableViewController
в ViewController
:
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if let a = articles {
return a.count
}
return 0
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) ->UITableViewCell{
let cell = tableView.dequeueReusableCellWithIdentifier("ArticleCell", forIndexPath: indexPath)
let article = articles?[indexPath.row]
if let a = article {
cell.textLabel?.text = a.articleName
cell.textLabel?.font = UIFont(name: "Avenir", size: 18)
cell.textLabel?.numberOfLines = 0
if let i = a.tableViewImage {
cell.imageView?.image = UIImage(named: i)
}
}
return cell
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "ShowArticle" {
let articleVC = segue.destinationViewController as? ArticleViewController
guard let cell = sender as? UITableViewCell,
let indexPath = tableView.indexPathForCell(cell) else {
return
}
articleVC?.article = articles?[indexPath.row]
}
}
В viewController
, чтобы показать правильную статью, я написал это в viewDidLoad()
(моей viewController
показывает веб-представление статья, и у меня есть класс Article
где articleLink
приходит от):
if let a = article {
articleWebView.loadRequest(NSURLRequest(URL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(a.articleLink, ofType: "html")!)))
}
Я связала nextButton
в Main.Storyboard
:
@IBOutlet weak var nextButton: UIButton!
Я относительно новым для Swift, и понятия не имею, как это сделать (моя главная проблема не в том, что я объявляю мои данные в tableViewController
, и я не понимаю, как я мог бы остаться в ViewController
и «импортировать» данные из tableViewController
).
Вы спасатель жизни, спасибо! Это работает как шарм, я просто изменил a.articleLink на nextArticle.articleLink в вашем ответе в nextButtonClick (если кому-то это понадобится в будущем). Спасибо за помощь :) – EdouM
Я одобрил и принял ответ, еще раз спасибо! – EdouM