在我使用Swift 2的项目中,我正在处理两个协议,MyViewControllerProtocol和MyViewModelProtocol。我希望所有的视图控制器都符合MyViewControllerProtocol。此协议将需要一个属性。该属性应符合MyViewModel协议。
我认为在这里可以工作的是这样的:
protocol MyViewControllerProtocol {
var viewModel: <T:MyViewModelProtocol> { get set }
}
class MyCustomViewModel: MyViewModelProt
我想从一个不是视图的类访问我的ViewModel。如果我这样做可以吗?这是在打破常规吗?
namespace MyApp
{
public class GameView
{
protected new GameViewModel ViewModel
{
get { return (GameViewModel)base.ViewModel; }
}
}
}
// Derived class
namespace MyApp
{
public class InAppPurchase: GameView
我有三个模型类:
protocol IncludedItem {
var id: Int { get }
var text: String { get }
}
protocol PrimaryItem {
associatedtype Included: IncludedItem
var id: Int { get }
var canClose: Bool { get }
var canDelete: Bool { get }
var canSend: Bool { get }
var includedItems: [Inclu
我有一个视图,我将调用具有嵌套用户控件的View1,我将其称为View2。我的主应用程序创建并显示View1,后者又创建View2,因为它是View1上的一个用户控件。View1和View2都有自己的视图模型。我需要做的是从View1的viewmodel到View2的viewmodel获取一个值。
View2应该是一个完全自包含的控件,具有自己的功能,可以在任何其他视图中重用,但它需要来自包含它的任何视图的一段信息。在这里给出的例子中,应该是View1。
我的第一个尝试是在View2上创建一个依赖属性,这样就可以在View1中像这样设置它:
<myUserControls:View2 M
我正在尝试从视图模型中抽象配置的视图。到目前为止,我一直在使用关联类型:
public protocol ViewModelProtocol: Equatable {}
public protocol ModeledView: class {
/// The type of the view model
associatedtype ViewModel: ViewModelProtocol
var viewModel: ViewModel? { get }
/// Sets the view model. A nil value describes a d
在我的ViewController (UIHostingController)中,viewModel (引用类型)在ViewController和它的rootView之间共享。viewModel有一个属性,它被包装为@Published。
On从api调用恢复对视图控制器的响应。在这里使用从服务器接收到的数据更新viewModel,在这里将值设置为@Published,而不是更新UI。
ViewController代码:
final class DashboardSceneViewController: UIHostingController<DashboardSceneView>
我有ViewModel
class MyViewModel extends BaseViewModel{
public void foo(){
// some code or return some boolean
}
}
查看类
class MyView extends View{
private MyViewModel myviewmodel;
public void bindTo(MyViewModel viewModel) {
this.viewModel = viewModel;
conte