self.lightNavigationBar = [[HTLLightContentStyleNavigationBarUtil alloc] init];
[self.lightNavigationBar configLightContentStyleNavBarWithViewController:self contentView:self.tableView title:@""];
UIViewController *topVC = [UIViewController htl_topViewController];
NVModelBaseHotelOrderCreateOrderBeforeResult 都是在監(jiān)聽這個屬性的變化 也就是填單頁面的基本信息
whiteboard里面存了NVModelBaseHotelOrderCreateOrderBeforeResult的所有信息
shouldshow表示當(dāng)前的cell是否顯示
setupmodule表示建立這個module的基本信息
這個模塊對應(yīng)
HTLOverseaPrepaySubmitOrderHeaderModule
其中只有一種類型的cell
HTLOverseaPrepaySubmitOrderHeaderCell
這種類型的cell中包含兩種類型cell 其中一種是上面的房源信息 HTLOverseaPrepaySubmitOrderBookInfoCell 另外一種是下面的退房警告:HTLOverseaPrepaySubmitOrderCancelInfoCell
這塊對應(yīng)的是HTLOverseaReservationInfoModule(controller)
這里面相對較復(fù)雜
房間數(shù)對應(yīng)HTLOverseaRoomsControlCell
入住人對應(yīng)HTLOverseaConsumerNameCell
聯(lián)系手機對應(yīng)HTLOverseaConsumerPhoneCell
電子郵箱對應(yīng) HTLOverseaCustomCell
到店時間對應(yīng)的是HTLArriveTimeModule,其中用的是原聲的UItableviewcell arriveTimeCell,但是上面addsubview了一個HTLPurchaseControlCell,不是很理解為什么這么做
這個東西對應(yīng)的是HTKChooseView 封裝好的一個view
對應(yīng)的HTLOverseaAccomodationPreferenceViewModule延赌,里面用的是原生的UItableviewcell
HTLOverseaAccomodationPreferenceViewController這個對應(yīng)的是二級頁面
HTLMemberPromotionModule這個模塊需要是錦江會員才可以看到的
HTLPrepayPurchaseDiscountsModule 這個是潘多拉優(yōu)惠&抵用券模塊
HTLOverseaPrepayInsuranceModule
HTLOverseaPrepayInvoiceModule這個是電子發(fā)票信息
translatesAutoresizingMaskIntoConstraints這個屬性 在書寫復(fù)雜的頁面布局約束的時候需要設(shè)置為NO
一般常用的一個信號操作
初始化的時候做約束設(shè)置
設(shè)置一個信號 直到這個頁面dealloc
從whiteboard中獲取數(shù)據(jù)的代碼
拿到一堆信號迄汛,然后做相應(yīng)信號變換處理
HTLHomePageModuleViewController 這個是酒店首頁的controller
首頁的module都會持有一個viewmodel 那就是HTLHomePageViewModel
Masory更改完約束之后惠桃,調(diào)用setNeedsUpdateContraints 在下一個runloop到來的時候 更改完約束
HTLOverseaReservationInfoModule這個是房間數(shù)的viewmodel
這個是發(fā)送消息 與注冊消息處理器的代碼
注意 messagehandler不能為空 seletor返回值也不能為空
你向西绿聘,他就向東,他向左徙缴,你就向右。
RACChannelTerminal *channelA = RACChannelTo(self, valueA);
RACChannelTerminal *channelB = RACChannelTo(self, valueB);
[[channelA map:^id(NSString *value) {
if ([value isEqualToString:@"西"]) {
return @"東";
}
return value;
}] subscribe:channelB];
[[channelB map:^id(NSString *value) {
if ([value isEqualToString:@"左"]) {
return @"右";
}
return value;
}] subscribe:channelA];
[[RACObserve(self, valueA) filter:^BOOL(id value) {
return value ? YES : NO;
}] subscribeNext:^(NSString* x) {
NSLog(@"你向%@", x);
}];
[[RACObserve(self, valueB) filter:^BOOL(id value) {
return value ? YES : NO;
}] subscribeNext:^(NSString* x) {
NSLog(@"他向%@", x);
}];
self.valueA = @"西";
self.valueB = @"左";
一段實現(xiàn)RACChannel的代碼