[英]Pushing view controller from inner view controller
就像在這個問題中所解釋的那樣,我有一個視圖控制器,在某些情況下可能不存在數據時,需要用不同的布局替換自身。 這似乎可行:
if ([analysis length] == 0) {
hasReview = NO;
UnreviewedSPP* unreviewedSPPView = [[UnreviewedSPP alloc] init];
unreviewedSPPView.ProductName = self.productName;
unreviewedSPPView.SdcId = self.sdcId;
unreviewedSPPView.Delegate = self;
NSArray* newViews = [[NSBundle mainBundle] loadNibNamed:@"UnreviewedSPP" owner:unreviewedSPPView options:nil];
self.view = [newViews objectAtIndex:0];
return;
}
但是,似乎我不能從替換視圖中推送新的視圖控制器:
[priceButton handleControlEvent:UIControlEventTouchUpInside withBlock:^{
WebViewController* wv = [[[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil] autorelease];
wv.url = offerURL;
[Delegate performSelector:@selector(pushViewControllerFromSubview:) withObject:wv];
}];
priceButton是一個自定義按鈕對象,可以將塊作為目標動作執行。
我嘗試了多種方法:將外部視圖控制器作為委托傳遞,並將外部視圖控制器的導航控制器作為內部視圖控制器的屬性傳遞。
似乎沒有任何作用。 有更好的解決方案嗎?
題:
1)當您調用pushViewControllerFromSubview時,是否保留了wv? 我注意到您在這里有自動發行協議。 檢查pushViewControllerFromSubview中的wv視圖。
2)另一種替換視圖的方法是使用'[self.view addSubView:myView];' 和[myView removeFromSuperView];'...這可能比推送視圖控制器更好。
干杯
根本原因是我的“外部視圖”實際上是一個子視圖,因此我無法直接訪問其導航控制器。 我已經忘記了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.