Iphone 调用[tableView重载数据];在modalViewController的viewController上

Iphone 调用[tableView重载数据];在modalViewController的viewController上,iphone,ios,objective-c,Iphone,Ios,Objective C,我有一个modalViewController,它位于带有tableView的viewController顶部。当用户单击modalViewController上的按钮时,我希望使用以下命令在viewController中重新加载tableView: [tableView1 reloadData]; 我不希望在不需要重新加载tableView时(即当用户单击“上一步”按钮返回tableView时)调用ViewDidDisplay或ViewWillDisplay方法时,将重新加载放在ViewD

我有一个modalViewController,它位于带有tableView的viewController顶部。当用户单击modalViewController上的按钮时,我希望使用以下命令在viewController中重新加载tableView:

[tableView1 reloadData]; 
我不希望在不需要重新加载tableView时(即当用户单击“上一步”按钮返回tableView时)调用ViewDidDisplay或ViewWillDisplay方法时,将重新加载放在ViewDidDisplay或ViewWillDisplay方法中

有办法吗?

试试看

1) 编写一个方法,
重新加载
表数据

2) 在点击按钮后调用它。

尝试

1) 编写一个方法,
重新加载
表数据

2) 点击
按钮后调用它。

尝试使用此按钮

制作一个按钮并单击此按钮,然后可以重新加载数据。 此按钮可自定义并在后台使用

  - (IBAction)reloadData:(id)sender
    {
         [tblView reloadData];
    }
试着用这个

制作一个按钮并单击此按钮,然后可以重新加载数据。 此按钮可自定义并在后台使用

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

使用类似以下方法的通知:-

在ViewController的ViewdidLoad方法中创建通知中心

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

  [super viewDidLoad];

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

    [yourTableView reloadData];

}
现在,您可以通过modelViewController BackButton调用此通知,或者通过调用此刷新通知来调用此通知,如放入以下代码行:-

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

注意:
postNotificationName:@“刷新”
这是一个特定通知的键

使用类似于以下方法的通知:-

在ViewController的ViewdidLoad方法中创建通知中心

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

  [super viewDidLoad];

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

    [yourTableView reloadData];

}
现在,您可以通过modelViewController BackButton调用此通知,或者通过调用此刷新通知来调用此通知,如放入以下代码行:-

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

注意:
postNotificationName:@“刷新”
这是一个特定通知的键

您可以使用委托。如果发现更难,则可选择使用
NSNotificationCenter
。你可以看到被接受的答案。这是一种非常简短、容易理解的方式。

您可以使用委派。如果发现更难,则可选择使用
NSNotificationCenter
。你可以看到被接受的答案。这是一种非常简短、容易理解的方式。

这是典型的委托模式问题,在模态视图控制器中,您需要对当前视图控制器的委托引用

//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

这是典型的委托模式问题,在模态视图控制器中,您需要对当前视图控制器的委托引用

//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


查看通知或委派。嗨,阿尼尔,我不太清楚怎么做。你有什么入门的例子或建议吗?@Brandon代表。这将对你非常有帮助。看看这个是的,按照Anil链接中给出的步骤进行操作。并在你的ViewController中用重载数据实现委托方法。查看通知或委托。嗨,Anil,我不太确定怎么做。你有什么入门的例子或建议吗?@Brandon代表。这将对你非常有帮助。看看这个是的,按照Anil链接中给出的步骤进行操作。并在ViewController中使用重载数据实现委托方法。嗨,Girish,我已经构建了该方法。我想在用户单击模式视图上的按钮时调用它,而不是单击后退按钮。你知道怎么做吗?我相信Girish的意思是在viewcontroller(包含tableview)中创建你的重载方法,并从ModalViewController调用该方法。在这种情况下,创建一个代理,当你单击按钮时自动调用。@JohnRiselvato你是对的,但如果他不想这样做,然后像我在前面的评论中提到的那样使用委托。@JohnRiselvato我想我只是不知道如何从另一个viewController调用一个方法hi Girish,我已经构建了这个方法。我想在用户单击模式视图上的按钮时调用它,而不是单击后退按钮。你知道怎么做吗?我相信Girish的意思是在viewcontroller(包含tableview)中创建你的重载方法,并从ModalViewController调用该方法。在这种情况下,创建一个代理,当你单击按钮时自动调用。@JohnRiselvato你是对的,但如果他不想这样做,然后像我在前面的评论中提到的那样使用委托。@JohnRiselvato我想我只是不知道如何从另一个viewController调用一个viewController上的方法喂,有人能告诉我吗?喂,有人能告诉我吗?