change view controller from didSelectItemAt custom CollectionViewCell inside a custom TableViewCell
I have a collection view inside tableview cell, so I want to select the collection view cell and it goes to another view controller. So how do i do that?
I have tried myself, it's either does nothing, "Application tried to present modally an active controller", or "Attempt to present .. on .. whose view is not in the window hierarchy".
ios swift uicollectionview
add a comment |
I have a collection view inside tableview cell, so I want to select the collection view cell and it goes to another view controller. So how do i do that?
I have tried myself, it's either does nothing, "Application tried to present modally an active controller", or "Attempt to present .. on .. whose view is not in the window hierarchy".
ios swift uicollectionview
add a comment |
I have a collection view inside tableview cell, so I want to select the collection view cell and it goes to another view controller. So how do i do that?
I have tried myself, it's either does nothing, "Application tried to present modally an active controller", or "Attempt to present .. on .. whose view is not in the window hierarchy".
ios swift uicollectionview
I have a collection view inside tableview cell, so I want to select the collection view cell and it goes to another view controller. So how do i do that?
I have tried myself, it's either does nothing, "Application tried to present modally an active controller", or "Attempt to present .. on .. whose view is not in the window hierarchy".
ios swift uicollectionview
ios swift uicollectionview
edited Nov 15 '18 at 5:02
rmaddy
243k27321383
243k27321383
asked Nov 15 '18 at 4:54
AnggaAngga
64
64
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Add a delegate
in cell class (Outside of cell class) and declare variable inside the class :
protocol CellSelectedDelegate { //Name them as you want
func cellSelected()
}
class TableCell: UITableViewCell {
var delegate: CellSelectedDelegate?
}
Then in cell's didSelectItem
:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
delegate?.cellSelected()
}
Now go to controller class where you have tableView datasource
and delegate
methods (assuming they are in controller class and not in another view) and add this in cellForItem method :
cell.delegate = self
And last part, implement custom delegate
method in controller class :
extension YourController: CellSelectedDelegate {
func cellSelected() {
//Present next controller here
}
}
got error forcell.delegate = self
. Cannot assign value of type TableViewCell to type CellSelectedDelegate
– Angga
Nov 15 '18 at 6:55
did you implement the last step too ?
– Sharad Chauhan
Nov 15 '18 at 6:58
yes, i did. the collection view is inside custom tableview cell, does it matter?
– Angga
Nov 15 '18 at 7:09
i figured it out, thedelegate
variable should be put inside the TableViewCell class. Thanks!
– Angga
Nov 15 '18 at 8:20
add a comment |
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%2f53312638%2fchange-view-controller-from-didselectitemat-custom-collectionviewcell-inside-a-c%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Add a delegate
in cell class (Outside of cell class) and declare variable inside the class :
protocol CellSelectedDelegate { //Name them as you want
func cellSelected()
}
class TableCell: UITableViewCell {
var delegate: CellSelectedDelegate?
}
Then in cell's didSelectItem
:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
delegate?.cellSelected()
}
Now go to controller class where you have tableView datasource
and delegate
methods (assuming they are in controller class and not in another view) and add this in cellForItem method :
cell.delegate = self
And last part, implement custom delegate
method in controller class :
extension YourController: CellSelectedDelegate {
func cellSelected() {
//Present next controller here
}
}
got error forcell.delegate = self
. Cannot assign value of type TableViewCell to type CellSelectedDelegate
– Angga
Nov 15 '18 at 6:55
did you implement the last step too ?
– Sharad Chauhan
Nov 15 '18 at 6:58
yes, i did. the collection view is inside custom tableview cell, does it matter?
– Angga
Nov 15 '18 at 7:09
i figured it out, thedelegate
variable should be put inside the TableViewCell class. Thanks!
– Angga
Nov 15 '18 at 8:20
add a comment |
Add a delegate
in cell class (Outside of cell class) and declare variable inside the class :
protocol CellSelectedDelegate { //Name them as you want
func cellSelected()
}
class TableCell: UITableViewCell {
var delegate: CellSelectedDelegate?
}
Then in cell's didSelectItem
:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
delegate?.cellSelected()
}
Now go to controller class where you have tableView datasource
and delegate
methods (assuming they are in controller class and not in another view) and add this in cellForItem method :
cell.delegate = self
And last part, implement custom delegate
method in controller class :
extension YourController: CellSelectedDelegate {
func cellSelected() {
//Present next controller here
}
}
got error forcell.delegate = self
. Cannot assign value of type TableViewCell to type CellSelectedDelegate
– Angga
Nov 15 '18 at 6:55
did you implement the last step too ?
– Sharad Chauhan
Nov 15 '18 at 6:58
yes, i did. the collection view is inside custom tableview cell, does it matter?
– Angga
Nov 15 '18 at 7:09
i figured it out, thedelegate
variable should be put inside the TableViewCell class. Thanks!
– Angga
Nov 15 '18 at 8:20
add a comment |
Add a delegate
in cell class (Outside of cell class) and declare variable inside the class :
protocol CellSelectedDelegate { //Name them as you want
func cellSelected()
}
class TableCell: UITableViewCell {
var delegate: CellSelectedDelegate?
}
Then in cell's didSelectItem
:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
delegate?.cellSelected()
}
Now go to controller class where you have tableView datasource
and delegate
methods (assuming they are in controller class and not in another view) and add this in cellForItem method :
cell.delegate = self
And last part, implement custom delegate
method in controller class :
extension YourController: CellSelectedDelegate {
func cellSelected() {
//Present next controller here
}
}
Add a delegate
in cell class (Outside of cell class) and declare variable inside the class :
protocol CellSelectedDelegate { //Name them as you want
func cellSelected()
}
class TableCell: UITableViewCell {
var delegate: CellSelectedDelegate?
}
Then in cell's didSelectItem
:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
delegate?.cellSelected()
}
Now go to controller class where you have tableView datasource
and delegate
methods (assuming they are in controller class and not in another view) and add this in cellForItem method :
cell.delegate = self
And last part, implement custom delegate
method in controller class :
extension YourController: CellSelectedDelegate {
func cellSelected() {
//Present next controller here
}
}
edited Nov 15 '18 at 8:49
answered Nov 15 '18 at 5:09
Sharad ChauhanSharad Chauhan
2,90211038
2,90211038
got error forcell.delegate = self
. Cannot assign value of type TableViewCell to type CellSelectedDelegate
– Angga
Nov 15 '18 at 6:55
did you implement the last step too ?
– Sharad Chauhan
Nov 15 '18 at 6:58
yes, i did. the collection view is inside custom tableview cell, does it matter?
– Angga
Nov 15 '18 at 7:09
i figured it out, thedelegate
variable should be put inside the TableViewCell class. Thanks!
– Angga
Nov 15 '18 at 8:20
add a comment |
got error forcell.delegate = self
. Cannot assign value of type TableViewCell to type CellSelectedDelegate
– Angga
Nov 15 '18 at 6:55
did you implement the last step too ?
– Sharad Chauhan
Nov 15 '18 at 6:58
yes, i did. the collection view is inside custom tableview cell, does it matter?
– Angga
Nov 15 '18 at 7:09
i figured it out, thedelegate
variable should be put inside the TableViewCell class. Thanks!
– Angga
Nov 15 '18 at 8:20
got error for
cell.delegate = self
. Cannot assign value of type TableViewCell to type CellSelectedDelegate– Angga
Nov 15 '18 at 6:55
got error for
cell.delegate = self
. Cannot assign value of type TableViewCell to type CellSelectedDelegate– Angga
Nov 15 '18 at 6:55
did you implement the last step too ?
– Sharad Chauhan
Nov 15 '18 at 6:58
did you implement the last step too ?
– Sharad Chauhan
Nov 15 '18 at 6:58
yes, i did. the collection view is inside custom tableview cell, does it matter?
– Angga
Nov 15 '18 at 7:09
yes, i did. the collection view is inside custom tableview cell, does it matter?
– Angga
Nov 15 '18 at 7:09
i figured it out, the
delegate
variable should be put inside the TableViewCell class. Thanks!– Angga
Nov 15 '18 at 8:20
i figured it out, the
delegate
variable should be put inside the TableViewCell class. Thanks!– Angga
Nov 15 '18 at 8:20
add a comment |
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%2f53312638%2fchange-view-controller-from-didselectitemat-custom-collectionviewcell-inside-a-c%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