之前可能会问这个问题,但我找不到任何相关的问题,这就是为什么要发布新的
所以我有3个标签,在tab3中我有用户个人资料标签 在tab3中我想显示loginViewController(如果用户尚未登录)否则我想显示默认配置文件选项卡
我可以使用OperationContract()]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Bare, Method = "POST", ResponseFormat = WebMessageFormat.Json, UriTemplate = "SaveFileAndData")]
void SaveFileAndData();
public void SaveFileAndData()
{
string ext1 = "";
string ext2 = "";
string filename1 = "";
string filename2 = "";
long id = 0;
if (HttpContext.Current.Request.Form["id"] != null && HttpContext.Current.Request.Form["id"].ToString().Trim() != "")
id = Int64.Parse(HttpContext.Current.Request.Form["id"].Trim());
int cid = 0;
if (HttpContext.Current.Request.Form["cid"] != null && HttpContext.Current.Request.Form["cid"].ToString().Trim() != "")
cid = Int32.Parse(HttpContext.Current.Request.Form["cid"].Trim());
HttpContext context = HttpContext.Current;
if (context != null)
{
if (context.Request.Files.Count >= 1)
{
HttpPostedFile file1 = HttpContext.Current.Request.Files["image1"];
if (file1 != null)
{
ext1 = System.IO.Path.GetExtension(file1.FileName);
filename1 = custregid + ext1;
if (((ext1.ToLower() != ".jpg") & (ext1.ToLower() != ".jpeg") & (ext1.ToLower() != ".gif") & (ext1.ToLower() != ".png") & (ext1.ToLower() != ".bmp")))
{
// Perform some operation
}
}
HttpPostedFile file2 = HttpContext.Current.Request.Files["image2"];
if (file2 != null)
{
ext2 = System.IO.Path.GetExtension(file2.FileName);
filename2 = custregid + ext2;
if (((ext2.ToLower() != ".jpg") & (ext2.ToLower() != ".jpeg") & (ext2.ToLower() != ".gif") & (ext2.ToLower() != ".png") & (ext2.ToLower() != ".bmp")))
{
// Perform some operation
}
}
}
}
}
protected void btnDoSomeThing_OnClick(object sender, EventArgs e)
{
try
{
long id = 1;
long cid = 1;
string key = "key";
WebRequest webrequest1 = WebRequest.Create("http://localhost:65010/API/Service.svc/SaveFileAndData");
webrequest1.Method = "POST";
webrequest1.Headers.Add("key", key);
string postData = "";
postData = "id=" + id + "&cid=" +cid;
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
webrequest1.ContentType = "application/x-www-form-urlencoded";
webrequest1.ContentLength = byteArray.Length;
Stream dataStream = webrequest1.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
// Get the response.
WebResponse webresponse = webrequest1.GetResponse();
Stream strresponse = webresponse.GetResponseStream();
StreamReader strreader = new StreamReader(strresponse);
string responseFromServer = strreader.ReadToEnd();
webresponse.Close();
strresponse.Close();
strreader.Close();
}
catch (Exception ex)
{
throw ex;
}
}
传递一个segue,或者像这样呈现一个视图控制器:
performSegue
但我不想那样, 如果用户尚未登录没有任何动画或过渡,我想在默认VC的位置显示不同的VC
e.g。
producthunt的iOS应用
如果用户未登录
如果他确实已登录:
看到他们没有将它呈现为弹出或模态的第一张图像。 看起来他们是在同一个VIewController上做的,但我不确定。任何人都可以在这里指导我吗?
答案 0 :(得分:0)
用所需的ViewController替换当前的ViewController完成了这项工作
let loginPageView = self.storyboard?.instantiateViewController(withIdentifier: "LoginVC") as! SignupViewController
var VCs = self.navigationController?.viewControllers
VCs?.removeLast() // here i removed the current VC
VCs?.append(loginPageView) after that added the desired VC
self.navigationController?.setViewControllers(VCs!, animated: false) // here i'm setting the viewcontrollers with any animation.