sınıfına bağlanmayacaktır Veri kaynağını ve tablo görünümünün çıkışlarını storyboard içindeki özel temsilci sınıfım için temsil edemiyorum. Bu tablo işlevlerini başka bir sınıfa devretmek istiyorum. Heyet, çıkışlar ve bir hikaye panosundaki şeyleri kablolamak konusunda temel olarak yanlış anladığım bir şey var.UITableView veri kaynağı ve temsilci özel bir sınıf
Arka plan bir bir UIPickerView
ihtiva eden bir görünümü vardır UIViewController
ve diğer şeyler arasında, bir UITableView
sahiptir.
UIViewController
numaramın çok büyük olduğu noktaya ulaştım ve tabloyla ilgili işlevleri başka bir sınıfa taşımak istiyorum.
numberOfSectionsInTableView:
gibi tablo yöntemlerini içermek için aşağıdaki sınıfı oluşturdum.
@interface ExerciseTableDelegate : NSObject <UITableViewDelegate, UITableViewDataSource>
@property (strong, nonatomic) ExerciseDataController *dataController;
@end
ben yukarıdaki sınıfa bir başvuru koymak düşündüm benim UIViewController
@interface ExerciseViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate>
{
UIPickerView *exercisePicker;
}
@property (strong, nonatomic) IBOutlet ExerciseTableDelegate *tableDelegate;
@end
Umuyordum ki film şeridinde içinde, benim tablonun veri kaynağı veya temsilci çıkışları biri sürüklerken UITableViewController
'a bakınca bana yetki verilen sınıfa bağlanabilme şansı verirdi. Olmadı.
Daha sonra, storyboard içinde ExerciseTableDelegate
sınıfına bir nesne oluşturmaya çalıştım. Sonra tablo görünümü temsilcisini nesneye sürükleyebilirim, ancak bu benim AppDelegate
içinde kurduğum aynı nesne değil.
Uygulamam temsilci
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
ExerciseViewController *rootViewController = (ExerciseViewController *)[[navigationController viewControllers] objectAtIndex:0];
ExerciseTableDelegate *tableDelegate = [[ExerciseTableDelegate alloc]init];
ExerciseDataController *dataController = [[ExerciseDataController alloc] init];
tableDelegate.dataController = dataController;
rootViewController.tableDelegate = tableDelegate;
// Override point for customization after application launch.
return YES;
}
- benim nesne a tek yapmak ve hala temsilci onu başlatılması gerekiyor mu?
- Bu kurulumu Storyboard'da değil kodda mı yapmalıyım?
- Storyboard'da bir nesne oluşturmak yanlış fikir mi?
Kendimi yakın hissediyorum ama bence çok fazla yapıyorum.
Thankyou (@jrturton). Bu hile yaptı. Buna ek olarak, ExerciseViewControllers tableView için bir IBOutlet oluşturmak için standart bir şey yapmam gerekiyordu ve bunu storyboard'da bağlamak gerekiyordu. – AllTheThingsICanDo