Swift Personnalisé Bouton de Retour et de Destination
Je suis actuellement en utilisant SWRevealViewController pour un menu de barre dans mon application. Lorsque je clique sur une des options, de la destination-vue-contrôleur ne dispose pas d'un bouton "retour", car il n'a pas une bonne vue-contrôleur (c'est à dire la page pour retourner à l').
Donc je suis désireux de créer manuellement un bouton de retour sur la destination-vue-contrôleur, qui revient à la maison-vue-contrôleur.
J'ai regardé le code ici: Comment puis-je régler manuellement le "Retour" de destination dans les applications iOS
Mais j'ai du mal à mettre en Swift (une erreur après l'autre!). Toute aide? Merci!
MODIFIER
J'ai essayé la suggestion ci-dessous, mais le bouton n'apparaît pas. Cela peut avoir quelque chose avec le fait que j'ai la barre de navigation cachée dans d'autres points de vue et de faire ce qui suit sur la vue de destination:
override func viewDidLoad() {
super.viewDidLoad()
navigationController.setNavigationBarHidden(false, animated:true)
var myBackButton:UIButton = UIButton.buttonWithType(UIButtonType.Custom) as UIButton
myBackButton.addTarget(self, action: "popToRoot:", forControlEvents: UIControlEvents.TouchUpInside)
var myCustomBackButtonItem:UIBarButtonItem = UIBarButtonItem(customView: myBackButton)
self.navigationItem.leftBarButtonItem = myCustomBackButtonItem
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func popToRoot(sender:UIBarButtonItem){
self.navigationController.popToRootViewControllerAnimated(true)
}
Ne sais pas pourquoi le bouton de retour, de ne pas s'afficher?
Modifier
C'est le prepareForSegue de ma barre latérale de-vue-contrôleur. Si il y a un moyen de vérifier la séquence de l'identificateur de "test" alors je peux mettre le bouton de retour à partir d'ici?
- (void) prepareForSegue: (UIStoryboardSegue *) segue sender: (id) sender
{
//Set the title of navigation bar by using the menu items
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
UINavigationController *destViewController = (UINavigationController*)segue.destinationViewController;
destViewController.title = [[_menuItems objectAtIndex:indexPath.row] capitalizedString];
if ( [segue isKindOfClass: [SWRevealViewControllerSegue class]] ) {
SWRevealViewControllerSegue *swSegue = (SWRevealViewControllerSegue*) segue;
swSegue.performBlock = ^(SWRevealViewControllerSegue* rvc_segue, UIViewController* svc, UIViewController* dvc) {
UINavigationController* navController = (UINavigationController*)self.revealViewController.frontViewController;
[navController setViewControllers: @[dvc] animated: NO ];
[self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES];
};
}
}
- avez-vous fixer encore , j'ai le même problème
Vous devez vous connecter pour publier un commentaire.
Vous pouvez écrire que dans swift comme ce
Écrire ce bouton ajouter sur
navigationController
ce sera pop pour
rootViewController
navigationBar
frame
veuillez vérifier maintenant, il est de travail.Vraiment désolé pour mon erreurleftBarButtonItem
ne fonctionne plus et j'ai dû utiliserbackBarButtonItem
Swift 3.0 Solution:
Dans Swift 2.1
Dans AppDelegate j'ai
Dans ViewController - je mettre à jour des Éléments de Navigation dans viewWillAppear méthode de cette façon
Voici une version mise à jour pour Swift 2/2.1: