-1

RSS リーダーを作成しようとしています。「フィードの追加」ページで、「追加」ボタンをタップすると、フィードが正常に追加されたかどうかを確認したいと考えています。追加されている場合は、アンワインド セグエをトリガーし、メイン ページに戻ります。追加されていない場合は、現在のページにとどまります。

「追加」ボタンで IBAction を作成し、フィードが追加されているかどうかを確認できることはわかっています。ただし、フィードを追加するために満たす必要がある 2 つの要件があります。

まず、URL を解析した後、解析結果がフィードを生成できるかどうかを知る必要があります。URL を解析するには、mainViewController で定義されたメソッドを使用する必要があります。

次に、フィードが既に存在するかどうかを確認する必要があります。このフィードが既に存在する場合は、追加しないでください。これを確認するには、mainViewController からフィード データを取得する必要があります。

現在、prepareForSegue を使用して、メインの viewController からこのビューにデータを渡します。しかし、条件付きアンワインド セグエの場合、データを渡し、フィードが既に存在するかどうかを確認する方法がわかりません。prepareForSegue は、セグエがトリガーされる場合にのみ使用されるためです。セグエが発動しないと、状態を確認できません。

セグエ以外に、他のビューからデータを渡す方法はありますか?

Objective-C を知らないので、迅速に解決策を教えていただければ幸いです。:)

4

3 に答える 3

0

デリゲートはいつでも使用できます。

フィード追加ページでデリゲートを設定し、デリゲートにmainViewController準拠します。- (BOOL)canGenerateFeed:(NSURL *)urlデリゲート メソッド ( ) とデリゲート プロパティ ( )を追加し@property (weak, nonatomic) id <AddFeedControllerDelegate> delegateます。

追加フィード ページが呼び出され、デリゲートに準拠すると、メソッドが呼び出されます (メソッド宣言で指定されているように、BOOL を返す必要があります) [self.delegate canGenerateFeed:url]。次に、それに応じて YES または NO で返信できます。これは、フィードの追加ページに送り返されます。mainViewControllermainViewController

于 2015-04-12T05:49:11.967 に答える
0
- (UIViewController*)viewControllerForStoryboardName:(NSString*)storyboardName class:(id)class
{
    UIStoryboard* storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];
    NSString* className = nil;

    if ([class isKindOfClass:[NSString class]])
        className = [NSString stringWithFormat:@"%@", class];
    else
        className = [NSString stringWithFormat:@"%s", class_getName([class class])];

    UIViewController* viewController = [storyboard instantiateViewControllerWithIdentifier:[NSString stringWithFormat:@"%@", className]];
    return viewController;
}

// get the view controller
    ViewController* viewController = (ViewController*)[self viewControllerForStoryboardName:@"MyStoryboard" class:[OtherViewController class]];
    // Pass data here
    viewController.data = myData;

// or you can push it
    [self.navigationController pushViewController:viewController animated:YES];
于 2015-04-12T07:32:52.177 に答える