代码之家  ›  专栏  ›  技术社区  ›  9to5ios

Objective-C中的路由设计模式

  •  -2
  • 9to5ios  · 技术社区  · 6 年前

    有人能在Objective-C中解释或创建它吗?

    目标

    从一个视图控制器跳到任何其他视图,反之亦然

    意味着用户可以使用此模式从任何视图跳转到任何视图

    https://medium.com/commencis/routing-with-mvvm-on-ios-f22d021ad2b2

    1 回复  |  直到 6 年前
        1
  •  0
  •   olejnjak    6 年前

    对于我使用的这种流 . 这仅仅意味着在视图控制器本身中,您没有硬编码的目标视图控制器,您只需调用某个委托(我称他为 flowDelegate )这个代表决定下一步要做什么。示例调用如下所示

    目标C:

    @class HomeViewController;
    
    @protocol HomeFlowDelegate
    
    - (void)didTapRegistrationButtonInViewController:(HomeViewController*)viewController;
    
    @end
    
    @interface HomeViewController: UIViewController
    
    @property (nonatomic,weak) id<HomeFlowDelegate> flowDelegate;
    
    @end
    
    @implementation HomeViewController
    
    - (void)registrationButtonTapped {
        [self.flowDelegate didTapRegistrationButtonInViewController:self];
    }
    
    @end
    

    银行代码:

    protocol HomeFlowDelegate {
        func didTapRegistrationButton(in viewController: HomeViewController)
    }
    
    class HomeViewController: ViewController {
        weak var flowDelegate: HomeFlowDelegate?
    
        func registrationButtonTapped() {
            flowDelegate?.didTapRegistrationButton(in: self)
        }
    }
    

    这种方法意味着视图控制器是独立的,可以在应用程序的任何地方重用。您只需确保当视图控制器出现在屏幕上时,它有一个 flowDelegate流程代理 分配。