0
votes

Comment passer à sa couleur de vue d'origine lorsque le menu latéral est fermé à Swift

J'utilise le menu côté gauche de cette pod https://github.com/jonkykong/sideemenu. Ici, j'ai donné un bouton de menu latéral de scénario à UisidemenunavigationController présent de la Segue modulée et le menu latéral fonctionne bien, mais mon problème est, si je clique sur le bouton de menu latéral (ouvert), j'ai changé la couleur de la vue de fond qui n'est pas changée Changer de sa couleur d'origine lorsque je ferme le menu latéral.

Comme ci-dessous la réponse mentionnée si je change mon code: xxx

J'ai eu cette erreur:

Utilisation de type non déclaré 'SidemenunavigationControllerDelegate'

Utilisation de type non déclaré 'SidemenUnAnavigationController'

Comment puis-je supprimer cette couleur lorsque je ferme le menu latéral, aidez-moi s'il vous plaît.


0 commentaires

3 Réponses :


0
votes

Vous pouvez implémenter SidemenunavigationControllerdelegate Méthodes dans votre contrôleur d'affichage, puis modifier la couleur lorsque Sidemenuwilldisappear déclencheurs


3 commentaires

Oui, j'ai ajouté Extension MyViewController: SidemenunavigationControllerdelegate {} Dans ma vueController ......... j'ai eu cette erreur Utilisation de type non déclaré 'SidemenunavigationControllerdelegate' Pourquoi ??


Oui, j'ai édité ma question avec mon code total et mon erreur, s'il vous plaît vérifier une fois .. Et s'il vous plaît laissez-moi savoir où j'ai fait erreur


Comment ajouter le menu côté délégué dans la vue ViewDidLoad



0
votes

Ajouter des méthodes de délégation. il fonctionnera que vous pouvez voir le code suivant- xxx pré>

et garder à l'esprit à faire - p> xxx pré>

mais je ne vous recommanderai pas de vous recommander de Changez la couleur de la vue comme celle-ci. Vous pouvez utiliser une propriété alpha du menu latéral pour assombrir la vue d'arrière-plan lors de la présentation du menu latéral. Prenez référence de - P>

let menu = storyboard!.instantiateViewController(withIdentifier: "SideMenuNavigationController") as! SideMenuNavigationController
    var set = SideMenuSettings()
    set.statusBarEndAlpha = 0
    set.presentationStyle = SideMenuPresentationStyle.menuSlideIn
    set.presentationStyle.presentingEndAlpha = 0.5


    set.menuWidth = min(view.frame.width, view.frame.height) * 0.90
    //menu.sideMenuManager.addScreenEdgePanGesturesToPresent(toView: self.view)
    menu.settings = set
    //SideMenuManager.default.addScreenEdgePanGesturesToPresent(toView: view)
    SideMenuManager.default.leftMenuNavigationController = menu


7 commentaires

J'ai ajouté mon code total dans la question ci-dessus et mentionné mon erreur aussi s'il vous plaît regardez-la une fois, et laissez-moi savoir erreur dans le code


Pour le changement de couleur de l'arrière-plan pendant que le menu latéral de l'intérieur et de l'extérieur, où dois-je placer votre 2e code mentionné


Comment ajouter le menu côté délégué dans la vue ViewDidLoad


Vous n'avez pas besoin d'ajouter du délégué dans ViewDidDload. Vous pouvez placer le deuxième code dans une fonction et appeler la fonction de la vue ViewDidLoad (du MasterView sur laquelle le menu latéral apparaîtra.)


Oui, la même erreur utilise de type non déclaré 'SidemenUnavigationController' en première ligne


Vous utilisez un menu latéral dans votre projet .. je veux dire dans la dernière version


d'accord, alors pourquoi je reçois une erreur mentionnée ci-dessus dans mon projet



0
votes
import SideMenu
import UIKit

class ViewController: UIViewController {

    var menu: SideMenuNavigationController?

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        menu = SideMenuNavigationController(rootViewController: MenuListController())
        menu?.leftSide = true
        menu?.setNavigationBarHidden(true, animated: false)
        SideMenuManager.default.addPanGestureToPresent(toView: self.view)
        SideMenuManager.default.leftMenuNavigationController = menu
    }

    @IBAction func didTappedMenu() {
        present(menu!, animated: true)

    }
}

class MenuListController: UITableViewController {

    var item = ["one","two","there","four","five","six","seven","eight","nine"]
    let darkColor = UIColor(red: 33/255.0, green: 33/255.0, blue: 33/255.0, alpha: 1)

    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
        tableView.backgroundColor = darkColor

    }

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

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell" , for: indexPath)
        cell.textLabel?.text = item[indexPath.row]
        cell.textLabel?.textColor = .white
        cell.backgroundColor = darkColor
        return cell
    }

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
    }
}


1 commentaires

Si possible, veuillez faire un effort pour fournir une explication supplémentaire au lieu d'un code seulement. Ces réponses ont tendance à être plus utiles car elles aident les membres de la communauté et en particulier le nouveau développeur comprennent mieux le raisonnement de la solution et aider à prévenir la nécessité de répondre aux questions de suivi.