我正在尝试通过选择appdelegate.m中的标签栏项来调用方法来重置表视图滚动值(到顶部):
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
if (_appTabBarController.selectedIndex == 0) {
HomeFeedVC *homeFeedVC = [[HomeFeedVC alloc]init];
[homeFeedVC resetFeedValue];
}
}
该方法是从我的HomeFeedVC.m调用的:
-(void)resetFeedValue
{
[_tableHomeFeed setContentOffset:CGPointZero animated:YES];
}
该方法运行顺畅,但是当我调用该方法时,我的-dealloc
方法在同一个视图控制器中调用:
- (void)dealloc
{
[[NSNotificationCenter defaultCenter]removeObserver:self name:@"uploadgif" object:nil];
NSLog(@"dealloced called for HOME FEED VC...................");
// self.uploadProgressView=nil;
// infBtn = nil;
// [arrFeedData removeAllObjects],arrFeedData = nil;
// [self.progressBuffer removeAllObjects],self.progressBuffer = nil;
// self.session = nil;
// [self.tempDirectUrls removeAllObjects],self.tempDirectUrls = nil;
// [self.imageBuffer removeAllObjects],self.imageBuffer = nil;
}
我不知道还能做什么...我应该实施协议吗?如果是这样,那有什么不同?我仍然成功调用该方法,因为如果我将该方法放在我的视图中的任何IBAction下,它就会成功执行。我的断点也经历了我想要的代码行。
答案 0 :(得分:0)
您不应在HomeFeedVC
中创建新的-didSelectViewController
- 请改为引用现有的if (_appTabBarController.selectedIndex == 0)
{
HomeFeedVC *homeFeedVC = (HomeFeedVC *)viewController;
[homeFeedVC resetFeedValue];
}
:
start "Runnning" /B CMD /C CALL "file\program.exe" 23 12
如果您需要更多帮助,请与我联系。