Мой следующий код находится в Swift.Нажмите на ключевое слово в UILabel
Подводя итог, у меня есть UITableView с твитами, каждая строка - твит. я могу знать, где находятся Хештеги с этим царем код:
for hashtag in tweet.hashtags {
attributedText.setAttributes(hashtagAttrs, range: hashtag.nsrange)
}
Но это полезно, если я хочу, чтобы выделить эти ключевые слова (Hashtags)
Чтобы поместить текст твита в моем Label, Я пишу:
@IBOutlet weak var tweetTextLabel: UILabel!
tweetTextLabel?.text = tweet.text
Так что теперь у меня есть это Tableview
То, что я хочу, чтобы иметь возможность нажать на хэштегом и исследования сек с информацией об этом новом хэштеге. Что я прошу: Как я могу щелкнуть по своему хэштегу прямо на моем ярлыке?
Большое вам спасибо!
[обновление]
мне удалось получить доступ к моему хэштегом с UITextView вместо UILabel, с этим кодом:
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
let tweetTableView = TweetTableViewController()
tweetTableView.searchText = URL.absoluteString
return true
}
Но сейчас проблема в том, что я не могу перезарядить мои данные в мой tableView. У меня есть мои новые твиты в моей переменной твита, но моя ячейка не обновляется. Эта функция tableView никогда не вызывается!
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(Storyboard.CellReuseIdentifier, forIndexPath: indexPath) as! TweetTableViewCell
cell.tweet = tweets[indexPath.section][indexPath.row]
return cell
}
Я уже пытался
tableView.delegate = self
Я использую эту функцию, чтобы освежить мою Tableview, но self.tableView.reloadData() ничего не делать ...
@IBAction func refresh(sender: UIRefreshControl?) {
if searchText != nil {
if let request = nextRequestToAttempt {
request.fetchTweets { (newTweets) -> Void in
dispatch_async(dispatch_get_main_queue()) {() -> Void in
if newTweets.count > 0 {
self.lastSuccessfulRequest = request
self.tweets.insert(newTweets, atIndex: 0)
self.tableView.reloadData()
}
sender?.endRefreshing()
}
}
}
} else {
sender?.endRefreshing()
}
}
СОВЕТ:
Возможно, это потому, что я использую другой экземпляр моего c девушка здесь? Должен ли я вызвать родительский tableView моего tableViewCell? Как ?
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
let tweetTableView = TweetTableViewController()
tweetTableView.searchText = URL.absoluteString
return true
}
[UPDATE & CLOSE]
я, наконец, добиться успеха с делегатом: Проблема заключалась в том, я использовал другой экземпляр моей tableViewController.
// TableViewCell
protocol TweetTableViewCellDelegate { // my delegate
func updateTweetHashTag(TweetTableViewCell)
}
// TableViewController
func updateTweetHashTag(cell: TweetTableViewCell){
let newHashTag = cell.newHashTagInCell
searchText = newHashTag
}
Можете ли вы разместить свой проект на GitHub? – Bannings
Наконец-то я с делегатом! Это не сработало, потому что у меня был другой экземпляр моего TableViewController. Вот мой код, если вы хотите увидеть: https://github.com/papay0/INSATwitter – papay0