У меня есть контроллер просмотра, в котором пользователь кратковременно нажимает кнопку и переходит к второму представлению, и я хочу передать ему некоторые данные, но во втором представлении есть контроллер просмотра навигации, поэтому prepareForSegue() здесь не работает. Должен ли я передавать данные в режим навигации, а затем во второй просмотр или делать что-то еще?Как передать данные с ViewController для встраивания View Controller
ответ
В соответствии с этим: https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UINavigationController_Class/#//apple_ref/occ/instp/UINavigationController/topViewController , следующее решение является более правильным: использовать "topViewController" в UINavitaionController.
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
let segueID = segue.identifier ?? ""
switch segueID
{
case "toMyNextVC":
let nc = segue.destinationViewController as! UINavigationController
let destinationVC = nc.topViewController as! MyNextViewController
destinationVC.varToPass = myVarToPass
default:
break
}
}
Человек, вы заслуживаете больше голосов! –
-(IBAction)moveToSecondViewButtonClicked:(UIButton*)sender {
SecondViewController *secondViewController = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
secondViewController.data = data;
[self.navigationController pushViewController:secondViewController animated:YES];
}
Если размер данных является умеренным, вы можете использовать NSNotificationCenter
для передачи данных.
Sender Класс
- (void)sendNotification {
[[NSNotificationCenter defaultCenter] postNotificationName:@"myNotification" object:YOUR_DATA];
}
приемника класс
- (void)viewDidLoad {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(receiveNotification:)
name:@"myNotification"
object:nil];
}
- (void)receiveNotification:(NSNotification *)notification
{
if ([[notification name] isEqualToString:@"myNotification"]) {
//doSomething here.
}
}
Надеется, что это помогает
Dont SEGUE от вашего ViewController к UIViewController. вы должны перевести viewcontroller в UINavigationController нового UIViewController. Вы можете передавать данные в методе prepareForSegue.
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
if segue.identifier == "showNavigationController"{
let navController : UINavigationController = segue.destinationViewController as! UINavigationController
let viewController : UIViewController = navController.viewControllers[0] as! UIViewController
viewController.data = yourData
}
}
- 1. Как передавать данные для встраивания ViewController?
- 2. Сколько способов передать/передать данные b/w view controller
- 3. Create View Controller с параметрами
- 4. iPhone Modal View Controller отдельно в ViewController
- 5. Невозможно передать данные другому View Controller с помощью SEGUE
- 6. ViewController Не переадресовывать Другие View Controller
- 7. как передать значение ember view to controller
- 8. передавать данные View Controller внедренные внутри контейнера View Controller
- 9. Navigation Controller и View Controller
- 10. Как передать данные из модального ViewController в родительский ViewController?
- 11. Как передать данные с контроллеров View?
- 12. Pass UISwitch State from One View Controller to Another ViewController
- 13. Root View Controller Swift
- 14. Как передать данные из Realm в ViewController
- 15. View Controller resize
- 16. Повторное использование View/ViewController для ввода текста
- 17. Main View Controller
- 18. loading Tabbar controller from view controller
- 19. Как передать значения jQuery multiselect из View в Controller
- 20. Невозможно передать модель от View до Controller.
- 21. iOS5 Second View Controller
- 22. Как передать данные в ViewController из push-уведомления через раскадровку?
- 23. Войти View Controller над модальной View Controller
- 24. Запуск View Controller из «вложенной» View Controller
- 25. View Controller Trouble
- 26. autolayout view controller inheritance
- 27. Как передать данные между ViewController и подвью ViewController
- 28. add many view controller
- 29. , представляющий modal view controller
- 30. View Controller в Android
Ваши данные крупные? –
Я думаю, http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers он может вам помочь. – JWC