এখানে আরেকটি সমাধান যা কিছুটা আলাদা।
আমার কিছু ভিউ হায়ারার্কি সম্পর্কিত সমস্যাগুলির কারণে এটি ব্যবহার করতে হয়েছিল: আমি কিছু কার্যকারিতা তৈরি করেছিলাম যার জন্য ভিউ হায়ারার্কির বিভিন্ন স্থানে ভিউগুলি পাস করার দরকার ছিল, যা ইউআইটিএবলভিউ কনট্রোলারের টেবিলভিউ খ / সি টেবিলভিউটি ইউআইটিএবলভিউ কনট্রোলারের মূল দৃষ্টিভঙ্গি ব্যবহার করার সময় ভেঙে যায় ( স্ব.উভিউ) এবং কেবল একটি নিয়মিত দর্শন নয়, এটি অসঙ্গতি নিয়ামক / দৃশ্যের স্তরক্রম তৈরি করেছে এবং ক্রাশ ঘটায়।
মূলত স্ব-দর্শনকে আলাদা ভিউ বরাদ্দ করার জন্য ইউআইটিএবলভিউ কনট্রোলার এবং ওভাররাইড লোডভিউয়ের নিজস্ব সাবক্লাস তৈরি করুন এবং আলাদা টেবিলভিউ ফেরত টেবিলভিউ সম্পত্তিটি ওভাররাইড করুন।
উদাহরণ স্বরূপ:
@interface MyTableVC : UITableViewController
@end
@interface MyTableVC ()
@property (nonatomic, strong) UITableView *separateTableView;
@end
@implementation MyTableVC
- (void)loadView {
self.view = [[UIView alloc] initWithFrame:CGRectZero];
}
- (UITableView *)tableView {
return self.separateTableView;
}
- (void)setTableView:(UITableView *)tableView {
self.separateTableView = tableView;
}
@end
কেলারের সমাধানের সাথে একত্রিত হয়ে গেলে এই অর্থে আরও শক্তিশালী হবে যে টেবিলভিউ এখন একটি ভিসির মূল দৃষ্টিভঙ্গি নয়, একটি নিয়মিত দৃষ্টিভঙ্গি এবং ভিউয়ের স্তরবিন্যাস পরিবর্তনের বিরুদ্ধে আরও দৃust় হতে পারে। এটি এভাবে ব্যবহারের উদাহরণ:
MyTableVC *tableViewController = [[MyTableVC alloc] init];
tableViewController.tableView = self.myTableView;
self.refreshControl = [[UIRefreshControl alloc] init];
[self.refreshControl addTarget:self action:@selector(getConnections) forControlEvents:UIControlEventValueChanged];
tableViewController.refreshControl = self.refreshControl;
এর জন্য আরও একটি সম্ভাব্য ব্যবহার রয়েছে:
যেহেতু এইভাবে সাবক্লাসিং করা সেলফ.টিউব ভিউ থেকে স্ব দর্শনকে পৃথক করে, তাই এখন এই ইউআইটিএবলভিউ কনট্রোলারকে নিয়মিত নিয়ামক হিসাবে ব্যবহার করা এবং ইউআইটিএবলভিউতে সাবভিউ যুক্ত করার বিশিষ্টতা ছাড়াই সেলফ.ভিউতে অন্যান্য সাবভিউ যুক্ত করা সম্ভব, সুতরাং কেউ তাদের তৈরির কথা বিবেচনা করতে পারে কন্ট্রোলাররা ইউআইটিএবলভিউ কনট্রোলার বাচ্চা না হয়ে সরাসরি ইউআইটিএবলভিউ কনট্রোলারের একটি সাবক্লাস দেখুন।
কিছু বিষয় লক্ষ্য রাখতে হবে:
যেহেতু আমরা সুপার না বলে টেবিলভিউ সম্পত্তিটি ওভাররাইড করছি, তাই নজর রাখার জন্য কিছু জিনিস থাকতে পারে এবং যেখানে প্রয়োজন সেখানে পরিচালনা করতে হবে। উদাহরণস্বরূপ, আমার উপরের উদাহরণে টেবিলভিউটি সেট করা টেবিলভিউটিকে সেলফ ভিউতে যুক্ত করবে না এবং ফ্রেমটি সেট করবে না যা আপনি করতে চান want এছাড়াও, এই বাস্তবায়নে ক্লাসটি ইনস্ট্যান্ট করার সময় আপনাকে কোনও ডিফল্ট টেবিল ভিউ দেওয়া হয় না, যা আপনি যোগ করার বিষয়টি বিবেচনা করতে পারেন। আমি এটি এখানে অন্তর্ভুক্ত করি না কারণ এটি কেস কেস অনুসারে হয়, এবং এই সমাধানটি আসলে কেলারের সমাধানের সাথে খুব ভাল ফিট করে।