2013-03-04 3 views
0

У меня есть modalViewController, который поднимается над вершиной viewController с помощью tableView. Когда пользователь нажимает кнопку на modalViewController Я хочу, чтобы перезагрузить Tableview в ViewController с этим:Позвоните [tableView reloadData]; на viewController от modalViewController

[tableView1 reloadData]; 

Я не хочу, чтобы поставить перезагрузку в методах viewDidAppear или viewWillAppear как они вызываются, когда я не необходимо перезагрузить tableView (т.е. когда пользователь нажимает кнопку «Назад», чтобы вернуться в таблицуView).

Есть ли способ сделать это?

+0

Пройдите через Уведомления или Делегат. –

+0

Привет, Анил, я точно не знаю, как это сделать. У вас есть примеры или рекомендации для начала? – Brandon

+2

@Brandon Перейти для делегата. Это будет очень полезно для вас. –

ответ

0

с использованием Notification как сильфона Метод: -

Создать NSNotificationCenter в yourViewController в ViewdidLoad Mehod

- (void)viewDidLoad 
{ 
    [[NSNotificationCenter defaultCenter] addObserver:self 
               selector:@selector(ReloadDataFunction:) 
                name:@"refresh" 
                object:nil]; 

    [super viewDidLoad]; 

} 
-(void)ReloadDataFunction:(NSNotification *)notification { 

    [yourTableView reloadData]; 

} 

Теперь вы можете вызвать это уведомление от modelViewController BackButton или же вы хотите от вызова этого уведомления Refresh например, положить эту строку кода: -

[[NSNotificationCenter defaultCenter] postNotificationName:@"refresh" object:self]; 

Примечание:postNotificationName:@"refresh" это ключ конкретного уведомления

2

Попытка

1) написать один метод, который reloadstable data.

2) Позвоните на обратной стороне button нажав.

+0

Привет, Гибриш, у меня есть метод. Я хочу называть его, когда пользователь нажимает кнопку на модальном представлении, а не на кнопку «Назад». Вы знаете, как это сделать? – Brandon

+0

Я считаю, что Girish означает, что вы создаете свой метод перезагрузки внутри viewcontroller (с вашим табличным представлением) и вызываете это из modalviewcontroller –

+0

. В этом случае создайте один делегат, который автоматически вызывает, когда вы нажимаете кнопку. – Girish

0

Попробуйте использовать это один

сделать кнопку и нажмите на эту кнопку, и чем вы можете перезагрузить данные. Эта кнопка делает обычай и использует ее на фоне.

- (IBAction)reloadData:(id)sender 
    { 
     [tblView reloadData]; 
    } 
1

Вы можете использовать делегат. Если найти его более сложно, альтернативой является использование NSNotificationCenter. Вы можете увидеть принятый ответ для Refreshing TableView. Это действительно очень короткий, простой и понятный способ.

2

Это классическая проблема делегат шаблон, в вашем модальный контроллер представления нужна ссылка делегата на текущий контроллер представления, представляя его

//Modal 
@protocol ModalVCDelegate 
- (void)tappedBackButton; 
@end 

@class ModalVC: UIViewController 
@property id<ModalVCDelegate> delegate; 
@end 

@implementation 
- (void)backButtonTapped:(id)sender 
{ 
    if (self.delegate) 
     [self.delegate tappedBackButton]; 
} 
@end 

Теперь в вашем представлении VC, просто обработать этот делегат сообщение

//Parent VC 
- (void)showModal 
{ 
    ModalVC *vc = [ModalVC new]; 
    vc.delegate = self; 
    //push 
} 

- (void)tappedBackButton 
{ 
    [self.tableView reloadData]; 
    //close modal 
} 
-2
You can use NSNotification to refresh table on ViewController. 

Inside viewController : 

-(void)dealloc{ 
[[NSNotificationCenter defaultCenter] removeObserver:self]; 
[super dealloc]; 
} 

Write code in viewDidLoad: 
[[NSNotificationCenter defaultCenter] addObserver:self 
     selector:@selector(reloadMainTable:) 
     name:@"ReloadTable" 
     object:nil]; 




- (void) reloadMainTable:(NSNotification *) notification 
{ 
    [tableView reload]; 
} 


Inside ModelViewController: 
[[NSNotificationCenter defaultCenter] 
     postNotificationName:@"ReloadTable" 
     object:nil]; 

Here you can also send custom object instead of nil parameter. But be care full about removal of NSNotification observer. 
+0

Может ли кто-нибудь сказать мне, почему это аннулирует голос? –

+0

Привет, может кто-нибудь мне сказать? –

Смежные вопросы