Iphone 调用[tableView重载数据];在modalViewController的viewController上
我有一个modalViewController,它位于带有tableView的viewController顶部。当用户单击modalViewController上的按钮时,我希望使用以下命令在viewController中重新加载tableView: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
[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上的方法喂,有人能告诉我吗?喂,有人能告诉我吗?