我正在尝试在收到推送通知时从表格视图中选择一行。
我有myprojectAppDelegate.h
#import <UIKit/UIKit.h>
#import "iw.h"
#import "Bookmark.h"
@interface myprojectAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {
UIWindow *window;
UITabBarController *tabBarController;
UINavigationController *navigationController;
NSMutableArray *tableData;
NSMutableArray *imagesList;
IBOutlet Bookmark *tableCell;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
@property(nonatomic, retain) NSMutableArray *tableData;
@property(nonatomic, retain) NSMutableArray *imagesList;
- (BOOL)getIsLaunched;
- (void)showService;
- (void)showMessage;
- (void) loadLogoList;
+ (const NSString*)getVersion;
+ (const NSString*)getXMLversionURL;
+ (NSMutableDictionary *)logos;
+ (void)setLogos:(NSMutableDictionary *)newDictionary;
- (void)checkVersion;
@end
并在myprojectAppDelegate.m文件中实现didReceiveRemoteNotification 但是,当应用程序在启动选项之后启动时,tableview在另一个类bookmarklist.m中实现,它导航到bookmarklist.m并显示表视图。
我想访问bookmarklist.m中的tableview,并在收到推送通知时在表格中选择一行。
请帮我解决这个问题。我是ios编程的新手。
感谢。
答案 0 :(得分:1)
使用UITableView类方法:
- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath
这将返回您提供的indexPath处的单元格。
如果您只想选择单元格,请使用此类方法:
- (void)selectRowAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated scrollPosition:(UITableViewScrollPosition)scrollPosition
答案 1 :(得分:1)
您可以在bookmarklist.m
类中添加观察者方法,例如
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(newMessageReceived:) name:@"NEWMESSAGE" object:nil];
并将此观察者方法添加到同一个类
中-(void)newMessageReceived:(NSNotification *) notification{
//Here you can select the row you want to be selected
}
然后在didReceiveRemoteNotification
appDelegate
文件中,发布此类通知,并将您要发布的数据传递给对象参数。
[[NSNotificationCenter defaultCenter] postNotificationName:@"NEWMESSAGE" object:nil];
希望这有帮助。