-3

Currently i am developing an iOS application which needs to be shown in the Arabic as well as the english languages. For this i am currently using the SWRevealviewcontroller. But i have a requirement that if the user chooses the Arabic language form the application settings the hamburger menu should move from left to right. Please do tell how to do this. Or any specific tutorial will help this.

The code below is:

    @IBOutlet weak var leftButton: UIBarButtonItem!

    @IBOutlet weak var rightButton: UIBarButtonItem!
    override func viewDidLoad() {
        super.viewDidLoad()

        NotificationCenter.default.addObserver(self, selector: #selector(languageChanged(_:)), name: NSLocale.currentLocaleDidChangeNotification, object: nil)

        customSetup()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func languageChanged(_ note: Notification)
    {
        customSetup()
    }

    func customSetup()
    {
        let preferredLanguage = Locale.preferredLanguages[0] as NSString
        print(preferredLanguage)

        let storyboard = UIStoryboard(name: "Main", bundle: nil)

        if preferredLanguage.substring(with: NSMakeRange(0, 2)) == "ar" {
            leftButton.target = self.revealViewController()
            leftButton.action = #selector(SWRevealViewController.rightRevealToggle(_:))

            rightButton.target = self.revealViewController()
            rightButton.action = #selector(SWRevealViewController.revealToggle(_:))

            revealViewController().rightViewController = storyboard.instantiateViewController(withIdentifier: "RearTableViewController") as? RevealTableTableViewController
            revealViewController().rearViewController = storyboard.instantiateViewController(withIdentifier: "RightViewController") as? RightViewController
        }
        else {
            revealViewController().rightViewController = storyboard.instantiateViewController(withIdentifier: "RightViewController") as? RightViewController
            revealViewController().rearViewController = storyboard.instantiateViewController(withIdentifier: "RearTableViewController") as? RevealTableTableViewController

            leftButton.target = self.revealViewController()
            leftButton.action = #selector(SWRevealViewController.revealToggle(_:))

            rightButton.target = self.revealViewController()
            rightButton.action = #selector(SWRevealViewController.rightRevealToggle(_:))
        }
    }
}

But i am getting the following error at

  if preferredLanguage.substring(with: NSMakeRange(0, 2)) == "ar" {
            leftButton.target = self.revealViewController()
            leftButton.action = #selector(SWRevealViewController.rightRevealToggle(_:))

            rightButton.target = self.revealViewController()
            rightButton.action = #selector(SWRevealViewController.revealToggle(_:))

            revealViewController().rightViewController = storyboard.instantiateViewController(withIdentifier: "RearTableViewController") as? RevealTableTableViewController
            revealViewController().rearViewController = storyboard.instantiateViewController(withIdentifier: "RightViewController") as? RightViewController
        }

unwrapped value: Click here to see the image

Michelle Root
  • 185
  • 1
  • 3
  • 9

1 Answers1

0

You should create a another storyboard for it.