Selection In UITableView Causes Rows to Disappear Instead of Calling Delegate's tableView(_:didSelectRowAt:)...












1















I am using a few small table views. When a row is tapped, I just want it to show a little checkmark, so in the TableView's datasource I added this method:



public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("Did Select Row at (indexPath.row)")
tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark
}


Pretty simple, but when a selection is made in the tableView all of the table's contents disappear, and no checkmark is made. I explicitly called the didSelectRowAt function, and it worked fine (a little checkmark showed up in the cell and it printed the print statement).



Just wondering if anyone has an explanation for this strange behavior. Here is the full definition of the Delegate/DataSource (I did not use a controller because it is not the main target of the app).



public class TableController : NSObject, UITableViewDataSource, 
UITableViewDelegate {
private var data : [String]
private var height : CGFloat


init(_ data : [String], cellHeight : CGFloat) {
self.data = data
self.height = cellHeight
}

public func tableView(_ tableView: UITableView, numberOfRowsInSection
section: Int) -> Int {
return data.count
}

public func tableView(_ tableView: UITableView, cellForRowAt
indexPath: IndexPath) -> UITableViewCell {
print("-cell for row at (indexPath.row) n")
let cell = UITableViewCell(style: .default, reuseIdentifier: nil)
cell.textLabel!.text = data[indexPath.row]

return cell
}

public func tableView(_ tableView: UITableView, didSelectRowAt
indexPath: IndexPath) {
print("Did Select Row at (indexPath.row)")
tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark
}
}









share|improve this question


















  • 1





    I don't think that the code you show is causing the problems. Just try to comment out tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark and see if the rows still disappear.

    – Andreas Oetjen
    Nov 24 '18 at 6:48
















1















I am using a few small table views. When a row is tapped, I just want it to show a little checkmark, so in the TableView's datasource I added this method:



public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("Did Select Row at (indexPath.row)")
tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark
}


Pretty simple, but when a selection is made in the tableView all of the table's contents disappear, and no checkmark is made. I explicitly called the didSelectRowAt function, and it worked fine (a little checkmark showed up in the cell and it printed the print statement).



Just wondering if anyone has an explanation for this strange behavior. Here is the full definition of the Delegate/DataSource (I did not use a controller because it is not the main target of the app).



public class TableController : NSObject, UITableViewDataSource, 
UITableViewDelegate {
private var data : [String]
private var height : CGFloat


init(_ data : [String], cellHeight : CGFloat) {
self.data = data
self.height = cellHeight
}

public func tableView(_ tableView: UITableView, numberOfRowsInSection
section: Int) -> Int {
return data.count
}

public func tableView(_ tableView: UITableView, cellForRowAt
indexPath: IndexPath) -> UITableViewCell {
print("-cell for row at (indexPath.row) n")
let cell = UITableViewCell(style: .default, reuseIdentifier: nil)
cell.textLabel!.text = data[indexPath.row]

return cell
}

public func tableView(_ tableView: UITableView, didSelectRowAt
indexPath: IndexPath) {
print("Did Select Row at (indexPath.row)")
tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark
}
}









share|improve this question


















  • 1





    I don't think that the code you show is causing the problems. Just try to comment out tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark and see if the rows still disappear.

    – Andreas Oetjen
    Nov 24 '18 at 6:48














1












1








1


0






I am using a few small table views. When a row is tapped, I just want it to show a little checkmark, so in the TableView's datasource I added this method:



public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("Did Select Row at (indexPath.row)")
tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark
}


Pretty simple, but when a selection is made in the tableView all of the table's contents disappear, and no checkmark is made. I explicitly called the didSelectRowAt function, and it worked fine (a little checkmark showed up in the cell and it printed the print statement).



Just wondering if anyone has an explanation for this strange behavior. Here is the full definition of the Delegate/DataSource (I did not use a controller because it is not the main target of the app).



public class TableController : NSObject, UITableViewDataSource, 
UITableViewDelegate {
private var data : [String]
private var height : CGFloat


init(_ data : [String], cellHeight : CGFloat) {
self.data = data
self.height = cellHeight
}

public func tableView(_ tableView: UITableView, numberOfRowsInSection
section: Int) -> Int {
return data.count
}

public func tableView(_ tableView: UITableView, cellForRowAt
indexPath: IndexPath) -> UITableViewCell {
print("-cell for row at (indexPath.row) n")
let cell = UITableViewCell(style: .default, reuseIdentifier: nil)
cell.textLabel!.text = data[indexPath.row]

return cell
}

public func tableView(_ tableView: UITableView, didSelectRowAt
indexPath: IndexPath) {
print("Did Select Row at (indexPath.row)")
tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark
}
}









share|improve this question














I am using a few small table views. When a row is tapped, I just want it to show a little checkmark, so in the TableView's datasource I added this method:



public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("Did Select Row at (indexPath.row)")
tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark
}


Pretty simple, but when a selection is made in the tableView all of the table's contents disappear, and no checkmark is made. I explicitly called the didSelectRowAt function, and it worked fine (a little checkmark showed up in the cell and it printed the print statement).



Just wondering if anyone has an explanation for this strange behavior. Here is the full definition of the Delegate/DataSource (I did not use a controller because it is not the main target of the app).



public class TableController : NSObject, UITableViewDataSource, 
UITableViewDelegate {
private var data : [String]
private var height : CGFloat


init(_ data : [String], cellHeight : CGFloat) {
self.data = data
self.height = cellHeight
}

public func tableView(_ tableView: UITableView, numberOfRowsInSection
section: Int) -> Int {
return data.count
}

public func tableView(_ tableView: UITableView, cellForRowAt
indexPath: IndexPath) -> UITableViewCell {
print("-cell for row at (indexPath.row) n")
let cell = UITableViewCell(style: .default, reuseIdentifier: nil)
cell.textLabel!.text = data[indexPath.row]

return cell
}

public func tableView(_ tableView: UITableView, didSelectRowAt
indexPath: IndexPath) {
print("Did Select Row at (indexPath.row)")
tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark
}
}






ios uitableview






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 24 '18 at 6:29









Liam KeeleyLiam Keeley

467




467








  • 1





    I don't think that the code you show is causing the problems. Just try to comment out tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark and see if the rows still disappear.

    – Andreas Oetjen
    Nov 24 '18 at 6:48














  • 1





    I don't think that the code you show is causing the problems. Just try to comment out tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark and see if the rows still disappear.

    – Andreas Oetjen
    Nov 24 '18 at 6:48








1




1





I don't think that the code you show is causing the problems. Just try to comment out tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark and see if the rows still disappear.

– Andreas Oetjen
Nov 24 '18 at 6:48





I don't think that the code you show is causing the problems. Just try to comment out tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark and see if the rows still disappear.

– Andreas Oetjen
Nov 24 '18 at 6:48












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53455754%2fselection-in-uitableview-causes-rows-to-disappear-instead-of-calling-delegates%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53455754%2fselection-in-uitableview-causes-rows-to-disappear-instead-of-calling-delegates%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Wiesbaden

Marschland

Dieringhausen