2016-04-22 2 views
1

Эй, ребята, я использую AKSwiftSlideMenu для функции меню слайдов в проекте, и мне интересно, есть ли способ, чтобы изменить название получателя ViewController, когда я перейду к нему из меню? Я попробовал этот код, но не передает данные по назначению:Как передать данные из меню AKSwiftSlideMenu в UIViewController в Swift?

func slideMenuItemSelectedAtIndex(index: Int32) { 
let topViewController : UIViewController = self.navigationController!.topViewController! 
print("View Controller is : \(topViewController) \n", terminator: "") 
switch(index){ 
case 0: 
    print("Note\n", terminator: "") 
    var nextVC = AddSubcategoryVC() 
    nextVC.categoryName = "Note" 
    self.openViewControllerBasedOnIdentifier("AddSubcategoryVC") 
    print("On menu the cat is: \(nextVC.categoryName)") 
    break 
default: 
    print("default\n", terminator: "") 
} 
} 

На назначения ViewController у меня есть эта переменная, которая должна получить данные из меню:

var categoryName = "" 

и она возвращается «ноль». Я также попытался это сделать:

var categoryName : String! 

и это:

var categoryName = String() 

все возвращаются 'всухую'.

ответ

0

Вы создали новый объект контроллера.

Заменить этот код:

var nextVC = AddSubcategoryVC() 
nextVC.categoryName = "Note" 
self.openViewControllerBasedOnIdentifier("AddSubcategoryVC") 

с

let destViewController = self.storyboard!.instantiateViewControllerWithIdentifier("AddSubcategoryVC") as! AddSubcategoryVC 
destViewController.categoryName = "Note"// You have to pass your data with view controller witch will open 
let topViewController : UIViewController = self.navigationController!.topViewController! 

if (topViewController.restorationIdentifier! == destViewController.restorationIdentifier!){ 
    print("Same VC") 
} else { 
    self.navigationController!.pushViewController(destViewController, animated: true) 
} 
Смежные вопросы