ビューコントローラページ(たとえば、ビューコントローラ1)にピッカービューがあります。次に、別のビューコントローラ(たとえば、ビューコントローラ2)のそのピッカービューから選択した文字列値にアクセスする必要があります。
これは、4つのグループに対応する保存データを表示するテーブルビューがあるためです。つまり、私のアプリケーションは、ユーザーがリマインダーを保存するリマインダーアプリケーションであり、ビューリマインダーページに表示されます。リマインダーは、ユーザーによってそれぞれのグループに保存されます。友人、家族、オフィスなど...だから私は以前に悪いプログラミングコンテキストで取得しました、すなわち
4つのグループに対応するリマインダーを表示するために4つのViewControllerを使用しました。つまり、クエリを使用して友人に対応するリマインダーを表示するためにfriendsViewControllerを使用しました。
NSString *getQuery = [NSString stringWithFormat:@"SELECT * FROM reminders WHERE Grp = 'Friends' GROUP BY Name,Event,Date"];
グループの家族、オフィス、知人の場合と同様に、悪いプログラミングのコンテキストを良いプログラミングの習慣に移すために、クエリを使用することを考えました。
NSString *getQuery = [NSString stringWithFormat:@"SELECT * FROM reminders WHERE Grp = '%@' GROUP BY Name,Event,Date",**selected string value from the picker in previous view**];
私が行おうとしている変更を特定してください。つまり、Grp ='%@'-文字列は、前のビューにあるピッカービューの行コンポーネントから選択された値です。
アクセスするための2つの可能な方法を知っています。
1.subclassing the view controller i.e.
@interface viewController2:viewController1,but I already have subclassed i.e.:
@interface viewController2:addReminderController ,so I cant subclass twice,I am not aware too!
2. Creating an instance object of the viewController1 i.e.
viewController1 *vC1 and I tried to access the groupPicker like [vC1.groupPicker selectedRowInComponent:row],
しかし、予想できるように、エラーがスローされます。つまり、行が宣言されていません。
groupPickerのコンポーネントの行数を[self.groupArraycount]として割り当てたので、配列にアクセスしようとしました。そのため、viewController2でも戦術を機能させようとしました。
[vC1.groupArray objectAtIndex:row],as expected the same error: **row undeclared**
では、前のビューにあるピッカービューで選択された行(文字列)にアクセスするにはどうすればよいですか。そうすれば、将来、私のような新入生にとって良い兆候となる、優れたプログラミング習慣を示すことができます:)
いくつかの貴重な提案を手伝ってください
よろしくお願いします:)