ইউআইটিএবলভিউডলেস্টরোউএটিআইডেক্সপথ: প্রথম ট্যাপে কল করা হচ্ছে না


352

আমি একটি সমস্যা আছে UITableView's didSelectRowAtIndexPath

আমার সারণীটি সেটআপ করা হয়েছে যাতে আমি যখন সারিটি নির্বাচন করি তখন এটি একটি নতুন দর্শন নিয়ামককে আরম্ভ করে এবং এটি পুশ করে।

আমি প্রথমবার টেবিলে কোনও সারিটি ট্যাপ করি, পদ্ধতিটি কল হয় না। আমি একবার অন্য সারিটি নির্বাচন করলে, এটি স্বাভাবিক হিসাবে কাজ শুরু করে।

আমি ব্রেকআপপয়েন্ট সেট করে এটি যাচাই করেছি didSelectRowAtIndexPathNSLogপদ্ধতিটিতে একটি যুক্ত করার সময় আমি দেখতে পাচ্ছি যে আমি যখন দ্বিতীয় সারিটি পরিশেষে নতুন ভিউ নিয়ন্ত্রকের দিকে ঠেলে দিই তখন আমি দুটি লগ স্টেটমেন্ট একই সাথে কনসোলে উপস্থিত দেখি।

কোন পরামর্শ?


2
আপনি কি আপনার কোড পোস্ট করতে পারেন tableView:didSelectRowAtIndexPath:?
জেরি 3

আমি একই সমস্যা ছিল, আমার উত্তর চেক করুন: stackoverflow.com/a/44097559/1600061
Zsivics Sanel

1
প্রধান সারিতে ডিসপ্যাচ আমার সমস্যার সমাধান stackoverflow.com/questions/20149167/...
durgeshtrivedi

উত্তর:


1356

কোন সুযোগ আপনি দূর্ঘটনাক্রমে টাইপ করেনি ডি selectRowAtIndexPath?


17
@ ডিস্কি এটি প্রথম ট্যাপে কল করা হয়নি কারণ আপনি কোনও কিছুরই নির্বাচন ছাড়ছেন না। একবার আপনি একটি সারি নির্বাচন করলে, আপনি যখন দ্বিতীয়টি নির্বাচন করার চেষ্টা করেন, প্রথমটি অনির্বাচিত হয়ে যায়।
শহরবাসী

19
এজন্য আমিও ভালবাসি।
এলবিল্ড

4
আমি এটি উত্সাহিত করেছি কারণ আমি একবারে এই ভুল করেছি। আমি উর্ধ্বগতি জানালাম কারণ আমি এতবছর ব্যয় করেছি মাত্র বহু বছরে 4 বারের চেয়ে কম।
ব্রুকস হ্যানস

8
ঈশ্বর!! এটি আমার কোডে প্রবর্তন করা সবচেয়ে খারাপ ত্রুটি হতে পারে।
শান্তনু পল

4
কি দারুন. আমাকে অনেক সময় বাঁচিয়েছে।
মর্টালমান

24

এছাড়াও xib ফাইলে আপনার টেবিল দর্শনের নির্বাচনের সম্পত্তিটি পরীক্ষা করুন। প্রয়োজন হিসাবে 'একক নির্বাচন' বা 'একাধিক নির্বাচন' ব্যবহার করুন।


2
বা হা হা হা! বাহ আমি এটি বের করার চেষ্টা করে 4 ঘন্টা ব্যয় করেছি। @ অন্তর্ভুক্ত করুন আমাকে উদ্ধার করতে (সালাম)! ধন্যবাদ!

17

আমি নিম্নলিখিত সমস্যাটি অনুভব করেছি:

  • সারিতে প্রথম আলতো চাপুন -> কোনও প্রভাব নেই, কোনও নির্বাচন নেই, কখনই নয়
  • দ্বিতীয় আলতো চাপুন এবং অনুসরণ করুন -> সর্বদা সঠিক নির্বাচনের আচরণ

আমার ক্ষেত্রে, আমার ত্রুটিটি Show Selection on Touchইন্টারফেস বিল্ডারে চেক করছিল । আপনি এটি আইবিতে এখানে চেক করতে পারেন:

এখানে চিত্র বর্ণনা লিখুন

আশা করি যে কাউকে সাহায্য করবে


আপনি আমার নায়ক! কেন এই ধারণাটি ডিফল্ট? আমি কোনও অ্যাপ্লিকেশনটির এমন আচরণের কথা ভাবতে পারি না এবং আমি মনে করি এটি একটি খুব অদ্ভুত ডিফল্ট।
ক্রিস্টোফ ফোনডাচি

12

আপনি যদি আপনার ক্লাসে কোনও অঙ্গভঙ্গি সনাক্তকারী সেট করে রেখেছেন তা পরীক্ষা করে দেখুন। অঙ্গভঙ্গি সরানো আমার পক্ষে কাজ করেছিল।


আমার দুটোই আছে; অঙ্গভঙ্গি সনাক্তকারী এবং ডিলেক্টরোআউটআইডেক্সপথ? যাইহোক, সর্বদা অঙ্গভঙ্গি শনাক্তকারী পছন্দ গ্রহণ করে। দ্বিতীয়টিতে যেতে অক্ষম। উভয়কেই পরিচালনা করার উপায় আছে বা আমাকে কী অঙ্গভঙ্গি শনাক্তকারী থেকে মুক্তি দিতে হবে? ধন্যবাদ!
রন

এটি অবশ্যই শীর্ষে থাকতে হবে :) এটি আইওএস বিকাশে 7 বছর পরে আমার 1 ঘন্টা খরচ করে।
ক্লাউন

6

এমনকি আমি এই উত্তরটি পোস্ট করে বিতর্ক করেছি কারণ আমি মনে করি তারারগুলি এটির জন্য প্রকাশিত হওয়ার জন্য এক প্রান্তে একত্রিত হয়েছে।

আমি এই সমস্যাটির বিভিন্নতা পেয়েছি এবং অন্যান্য সমাধানগুলি পরীক্ষা করেছি। আমার টেবিল দৃশ্যে এটি প্রথম ট্যাপে আমার টেবিলের একেবারে শেষ সারিটি প্রক্রিয়া করছে না। এটি এটিকে হাইলাইট করে, কিন্তু didSelectRowAtIndexPathডাকা হয় না। অন্যান্য সমস্ত সারি ভাল কাজ করে। তবে আমি যদি টেবিলভিউ বাউনটি চালু করি তবে এটি সমস্যার সমাধান হবে বলে মনে হচ্ছে (তবে তারপরে আপনাকে একটি টেবিলভিউ বাউন্সটি মোকাবেলা করতে হবে)।


আপনি কেন এটি হওয়ার কারণ খুঁজে পেয়েছেন? আমার ঠিক একই সমস্যা আছে। আমি যখন টেবিলের বাউনিং বন্ধ করি, তখন সারণির প্রথম / শেষ সারিটি প্রথম ট্যাপটিতে প্রতিক্রিয়া জানায় না। আমি ভেবেছিলাম এটি বাগ তবে এটি এক বছরের বেশি হয়েছে এবং এখনও চলছে।
ফিলিপ.করাস

না, আমি কেবল টেবিলভিউ বাউন চালু করে রেখেছি।
চেজ রবার্টস

আমি এই সমস্যাটি কেবল আইফোন 5-এ (আইওএস 10.3) নিয়ে আসছি - আমার টেবিলভিউতে বাউন্স চালু করে এটি ঠিক করা হয়েছে। খুব অদ্ভুত!
লি প্রবার্ট

4

UITableViewCellSelectionStyleNone সেই সমস্যাটি প্রদর্শন করার জন্য সেলটির জন্য সেট করা হয়েছিল (ios9)।

আমি কলিং শেষ করেছি

[tableView deselectRowAtIndexPath:indexPath animated:NO];

প্রথম জিনিস

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

যা একই নয়, তবে যথেষ্ট ভাল। আইওএস 10 কী ধরণের টেবিল ভাঙ্গা নিয়ে আসে তা আমাকে অবাক করে দেয়।


এটি আমার পক্ষে কাজ করেছে তবে নির্বাচনের শৈলীটি না করেই লুকিয়ে রাখার জন্য আমার একদম প্রয়োজন। আমি ওভাররাইড করেছি setSelectedতবে ব্যবহারকারী সেলটি ধারণ করার সময় নির্বাচনটি প্রদর্শিত হবে যা গ্রহণযোগ্য নয়
এমজুতাবাবুহানী

1

সুইফট 2

আপনার এই সেটটি সত্য হয়ে গেছে তা নিশ্চিত করুন:

self.tableView.allowsSelection = true

আপনার পরে viewDidLoad()এবং এর আগে আপনার ডানদিকে এটি রাখুনsuper.viewDidLoad()


1

সুইফট 3

আপনি যদি এমন একটি ক্লাসে সুইফট 3 নিয়ে কাজ করছেন যা একটি নয় UITableViewControllerএবং আপনি ব্যবহার করছেন UITableViewDelegate, তবে আপনাকে পদ্ধতির শিরোনামটি ব্যবহার করতে হতে পারে:

@objc(tableView:didSelectRowAtIndexPath:) func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){...}

এটি আমার পক্ষে কাজ করেছে, যদিও আমি সবেমাত্র আমার প্রকল্পটি সুইফট ৩-তে স্থানান্তরিত করেছি এটি মোটামুটি নতুন তাই এটি পরে ঠিক করা যেতে পারে।


1

আপনি যদি আপনার ক্লাসে কোনও ইউআইটিএপজেস্টারআরগনাইজার সেট করে থাকেন তবে আপনি এইড লাইনটি আপনারডডলেকটোরোঅ্যাট ইন্ডেক্সপথটিতে যুক্ত করতে পারেন:

[tableView deselectRowAtIndexPath:indexPath animated:NO];

এটি আমার পক্ষে কাজ করেছে।


1

এই সমস্যাটি তখনও ঘটে যখন আপনি কোনও টেবিলের মধ্যে অঙ্গভঙ্গি সনাক্তকারী সাথে কাজ করছেন এই ক্ষেত্রে আপনার এগুলি অপসারণ করার দরকার নেই, আপনার কেবল এটি নিশ্চিত করা দরকার যে আপনার অঙ্গভঙ্গি সম্পত্তিটি cancelsTouchesInView = falseকোনও দৃশ্যে স্পর্শ বিতরণ করা হয় কিনা তা প্রভাবিত করে এমন একটি বুলিয়ান মান ing একটি অঙ্গভঙ্গি স্বীকৃত


0

সুইফট 3

আমার ক্ষেত্রে অন্য উত্তরগুলির কোনওটিই কাজ করেছিল না, এটি আমার পক্ষে কী স্থির করেছিল তা হ'ল:

tableView.delaysContentTouches = false


0

didSelectRowAtপ্রথম বা দ্বিতীয় ট্যাপে আমার অ্যাপ্লিকেশনটিতে ফাংশনটি কল করা হয়নি ... আমি সমস্যাটি সমাধান করার চেষ্টা করছিলাম কোনও সমাধান খুঁজে পেল না। তবে হঠাৎ আমি চিনতে পেরেছি, আমি ভিউ.অ্যানিমেশন রঙ পরিবর্তন ব্যবহার করছিলাম ... Delegateঅ্যানিমেশন চলতে থাকা অবস্থায় পদ্ধতিটি কল করা হয়নি


0

আমার ক্ষেত্রে আমার একটি অঙ্গভঙ্গি শনাক্তকারী সহ একটি ইউআইটিএবল ভিউ বিভাগের শিরোনাম ছিল। যখন শিরোনামটি ট্যাপ করা থাকে, তখন সে বিভাগটিতে কয়েকটি সারি সন্নিবেশ করাতে হবে এবং সন্নিবেশটি সঞ্চারিত করা উচিত (যেমন প্রসারিত / পতন বিভাগ)। প্রথমবার যখন প্রসারিত এবং ট্যাপ করা হয়েছে তখন doSelectRow প্রতিনিধি পদ্ধতি বরখাস্ত করা হয়নি। পরবর্তী কলের জন্য এবং প্রসারিত / পতনের ক্রিয়াগুলির জন্য, এটি প্রত্যাশার মতো কাজ করছিল।

@ আইয়ুব নুরির উত্তর অনুসারে আমি বাতিলগুলি টাচআইনভিউকে মিথ্যা হিসাবে সেট করেছি এবং এটি সমস্যার সমাধান করেছে। tapGestureRecognizer? .cancelsTouchesInView = মিথ্যা


0

সুইফট 4.2

বৈশিষ্ট্য পরিদর্শকের মধ্যে "বিলম্ব টাচ ডাউন" অক্ষম করা সমস্যার সমাধান করেছে।
এর পরে ক্লিকগুলি মসৃণ হয় এবং তাড়াতাড়িই আগুন জ্বলে ওঠে S

এক্সকোড বৈশিষ্ট্য পরিদর্শক


0

আমার জন্য যা কাজ করেছিল তা হ'ল "doSelect ..." টাইপ করা শুরু করুন এবং তারপরে বাকী অংশটি স্বতঃসংশোধন করতে দিন। স্পষ্টতই আমার বাক্য গঠনের কিছু বিবরণ ছিল দুর্বল। অন্যরা যেমন বলেছে, আইডিই ব্যবহার করুন !!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.