Selection In UITableView Causes Rows to Disappear Instead of Calling Delegate's tableView(_:didSelectRowAt:)...
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
add a comment |
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
1
I don't think that the code you show is causing the problems. Just try to comment outtableView.cellForRow(at: indexPath)?.accessoryType = .checkmark
and see if the rows still disappear.
– Andreas Oetjen
Nov 24 '18 at 6:48
add a comment |
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
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
ios uitableview
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 outtableView.cellForRow(at: indexPath)?.accessoryType = .checkmark
and see if the rows still disappear.
– Andreas Oetjen
Nov 24 '18 at 6:48
add a comment |
1
I don't think that the code you show is causing the problems. Just try to comment outtableView.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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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